PHP插入不正常工作

时间:2011-01-03 23:36:35

标签: php mysql sql phpmyadmin

我的文件中包含以下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 个答案:

答案 0 :(得分:4)

索引是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

答案 1 :(得分:3)

试试这个:

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

MySQL reserved words and how to treat them

答案 2 :(得分:0)

您可以验证inventory_items表中的列是否为:

Index
Name
Price

并且您将Index字段设置为AUTO_INCREMENT。

最好的办法是从insert语句中删除该字段。

尝试

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

因为你还没有插入索引。

希望有所帮助!