2015-03-16 2 views
0

Я пытаюсь добавить шину в базу данных шин из формы. Если я использую var_dump, запрос правильный, но он не вставляет ничего в базу данных. Вот мой код.Запрос PHP/MySQL не работает

<?php 

require('../includes/database_connection.php'); 
error_reporting(E_ALL); 
    ini_set('display_errors', 1); 
    $idtires = ''; 
    $size = $_POST["size"]; 
$idbrand = $_POST["idbrand"]; 
$price = $_POST["price"]; 
$mileage = $_POST["mileage"]; 
$idterrain = $_POST["idterrain"]; 
$idvehicle = $_POST["idvehicle"]; 
$idtiremodel = $_POST["idtiremodel"]; 

function add_tire($idtires, $size, $idbrand, $price, $mileage, $idterrain,  $idvehicle, $idtiremodel) { 
    global $db; 
    $query = "INSERT INTO tires 
        (idtires, size, idbrand, price, mileage, idterrain, idvehicle, idtiremodel) 
       VALUES 
        ($idtires, '$size', '$idbrand','$price', '$mileage', '$idterrain', '$idvehicle', '$idtiremodel')"; 
    var_dump($query); 
    // var_dump($db); 
    $db->exec($query); 

} 


    add_tire($idtires, $size, $idbrand, $price, $mileage, $idterrain, $idvehicle, $idtiremodel); 



include('add.php'); 

?> 

ЗДЕСЬ add.php форма:

<table> 

      <form method='post' action='addatire.php' name='addform' id='addform'> 
       <tr> 
        <td> 
         <p> 
          <label for='size'>Size:</label><br /> 
         </p> 
        </td> 
        <td> 
         <p> 
          <input type='text' name='size' required value="<?php echo(isset($size['size'])); ?>"/> 
         </p> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <p> 
          <label for='idbrand'>Brand ID:</label><br/> 
         </p> 
        </td> 
        <td> 
         <p> 
         <input type='text' name='idbrand' required value="<?php echo(isset($idbrand['idbrand'])); ?>"/> 
         </p> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <p> 
          <label for='price'>Price:</label><br/> 
         </p></td> 
        <td><p> 
          <input type='text' name='price' required value="<?php echo(isset($price['price'])); ?>"/> 
         </p></td> 
       </tr> 
       <tr> 
        <td> 
         <p> 
          <label for='mileage'>Mileage:</label><br/> 
         </p></td> 
         <td><p> 
          <input type='text' name='mileage' required value="<?php echo(isset($mileage['mileage'])); ?>"/> 
         </p></td> 
       </tr> 
       <tr> 
        <td> 
         <p> 
          <label for='idterrain'>Terrain ID:</label><br/> 
         </p></td> 
        <td><p> 
          <input type='text' name='idterrain' required value="<?php echo(isset($idterrain['idterrain'])); ?>"/> 
         </p></td> 
       </tr> 
       <tr> 
        <td> 
         <p> 
          <label for='idvehicle'>Vehicle ID:</label><br/> 
         </p></td> 
        <td><p> 
          <input type="text" name="idvehicle" required value="<?php echo(isset($idvehicle['idvehicle'])); ?>"/> 

         </p></td> 
        </tr> 

       <tr> 
        <td> 
         <p> 
          <label for='idtiremodel'>Tire Model ID:</label><br/> 
         </p></td> 
        <td><p> 
          <input type="text" name="idtiremodel" required value="<?php echo(isset($idtiremodel['idmodel'])); ?>"/> 

         </p></td> 
       </tr> 



       <tr> 
         <td><p> 
          <input type="submit" name="action" value="Add A Tire"/> 

         </p></td> 
       </tr> 
      </form> 
      </table> 



        <?php echo get_tires(); ?> 
       </div> 


?> 

ЗДЕСЬ подключение к базе данных:

<?php 
    if ($_SERVER['HTTP_HOST'] == "localhost" OR $_SERVER['HTTP_HOST'] == "127.0.0.1") { 
     // login locally 
     $dsn = 'mysql:host=localhost;dbname=?'; 
     $username = ?; 
     $password = ?; 

} else { 
     // login online 
     $dsn = 'mysql:host=localhost;dbname=?'; 
      $username = '?'; 
     $password = '?'; 

    } 

    try { 
    $db = new PDO($dsn, $username, $password); 
    } catch (PDOException $e) { 
     $error_message = $e->getMessage(); 
     include('database_error.php'); 
     exit(); 

    } 
?> 

Мои имена пользователей и пароли не на самом деле? хотя, я просто использую их здесь для обеспечения конфиденциальности и безопасности.

+0

вывесить содержание ../includes/database_connection.php вашего $ db-> ехес ($ запроса); не работает –

+1

Почему вы не проверяете возвращаемые значения ваших звонков в вашу базу данных на наличие ошибок? Вы также восприимчивы к SQL-инъекции. –

+0

Я в середине разработки. Это не готовый продукт. Соединение с базой данных имеет мои пароли, и оно отлично работает с другими функциями, которые выполняют аналогичные действия. Другие функции (как и эта) работают с базой данных. –

ответ

0

Вы, вероятно, получить ошибку на вашей вставки и просто не видел его:

$db->exec($query) or die(print_r($db->errorInfo(), true)); 
Смежные вопросы