2014-01-07 3 views
0

Итак, у меня есть это упражнение, когда мне нужно вставлять (и делать различные другие действия, я делал это успешно) данные в очень базовую базу данных через вставку php, но мне кажется, быть в состоянии сделать это, и я совершенно не знаю, почему.Ошибка при вводе данных в DB через php

Вот мой код (отказ от ответственности, я только в начале обучения PHP, так что любой совет будет очень ценен!):

<?php 

include 'Connect.php'; 

$query = "INSERT INTO game (product_id, product_name, multiplayer, pegi, genre, release_date, dis_id, dev_name) 
VALUES ('" 
    .$_POST['product_id']."','" 
    .$_POST['product_name']."','" 
    .$_POST['multiplayer']."','" 
    .$_POST['pegi']."','" 
    .$_POST['genre']."'," 
    .$_POST['release_date'].",'" 
    .$_POST['publisher'].",'" 
    .$_POST['developer']."')"; 

//execute query 
$queryexe = mysql_query($query); 
if ($queryexe) { 
mysql_query("COMMIT"); 
print("<p><font size=\"+1\">Success!</font></p>"); 
} else { 
print("<p><font size=\"+1\">Error</font></p>"); 
} 

//disconnect from database 
mysql_close($connectionstring); 

?> 

Он подключается к БД, так как я могу чтобы посмотреть, что находится в таблице , но я не знаю, почему я получаю постоянную ошибку.

Заранее благодарен!

+1

Что ошибка? –

+0

Я получаю сообщение об ошибке из печати, но мой соседи по квартире, который занят подобным db и подключен к нему локально (я использую удаленный сервер моего университета), получает сообщение об ошибке «неопределенная переменная». – persongr

+0

'release_date', если только это не число, должно быть в кавычках. Даты дат. –

ответ

0

Здесь не ваш код изменен так, что сделка была неполной

include 'Connect.php'; 

    mysql_query("START TRANSACTION"); 

    $query = "INSERT INTO game (product_id, product_name, multiplayer, pegi, genre, release_date, dis_id, dev_name) 
    VALUES ('" 
.$_POST['product_id']."','" 
.$_POST['product_name']."','" 
.$_POST['multiplayer']."','" 
.$_POST['pegi']."','" 
.$_POST['genre']."','" 
.$_POST['release_date']."','" 
.$_POST['publisher']."','" 
.$_POST['developer']."')"; 

    //execute query 
    $queryexe = mysql_query($query); 
    if ($queryexe) { 
    mysql_query("COMMIT"); 
     print("<p><font size=\"+1\">Success!</font></p>"); 
    } else { 
    mysql_query("ROLLBACK"); 
     print("<p><font size=\"+1\">Error</font></p>"); 
    } 

    //disconnect from database 
     mysql_close($connectionstring); 

Вы делали совершить без beggining в сделки и не Откат в случае ошибки тузд или неудачи,

В качестве рекомендации приступайте к работе с mysqli и не используйте значения, объединенные в инструкции insert.

Редактировать

Вы пропускаете цитаты после двойной кавычки в поле издателя

.$_POST['release_date'].",'" 
.$_POST['publisher']."' // <--- this one 
+0

Да, я знаю, что commit это о транзакциях, я вроде забыл его там. Полный код транзакции не исправил ошибку, хотя. – persongr

+0

@persongr Какая ошибка сообщается вам? добавьте этот '$ queryexe = mysql_query ($ query) или die (mysql_error()); 'и напечатайте здесь ошибку, которую возвращает браузер. – DannyG

+0

«У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с«, »DICE») по строке 2 » Я ввел DICE в поле разработчика. – persongr

Смежные вопросы