PHP Вставка не работает должным образом - PullRequest
2 голосов
/ 04 января 2011

В моем файле есть следующие строки кода PHP вместе с другим кодом:

$command = "INSERT INTO inventory_items (Index, Name, Price) VALUES (NULL, 'Diamond', '3.99')";
$insertion = mysql_query($command) or die(mysql_error());
if ($insertion == FALSE)
{
 echo "Error: Insert failed.";
}
else
{
 echo "Insert successful.";
}

Он продолжает возвращать эту ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Index, Name, Price) VALUES (NULL, 'Diamond', '3.99')' at line 1

myAdmin говорит, что я использую клиент MySQL версии 5.0.91. Что я делаю неправильно? Я просто не могу понять это! Я много пытался искать ...

Ответы [ 3 ]

4 голосов
/ 04 января 2011

Индекс - это зарезервированное слово в MySQL, поэтому вам нужно либо изменить имя столбца, либо экранировать его с помощью обратных галочек.Попробуйте это $command:

$command = "INSERT INTO inventory_items (`Index`, Name, Price) VALUES (NULL, 'Diamond', '3.99')";

Подробнее о зарезервированных словах здесь: http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

3 голосов
/ 04 января 2011

Попробуйте это:

$command = "INSERT INTO inventory_items (`Index`, Name, Price) VALUES (NULL, 'Diamond', '3.99');";

MySQL зарезервированные слова и как их обрабатывать .

0 голосов
/ 04 января 2011

Можете ли вы проверить, что столбцы в вашей инвентаризации таблицы:

Index
Name
Price

И у вас в поле Индекс установлено значение AUTO_INCREMENT.

Лучше всего удалить это поле из оператора вставки.

Попробуйте

$command = "INSERT INTO inventory_items (Name, Price) VALUES ('Diamond', '3.99')";

Так как вы все равно не вставляете индекс.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...