我的文件中包含以下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。我究竟做错了什么?我只是想不出来!我试了很多次......
答案 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');";
答案 2 :(得分:0)
您可以验证inventory_items表中的列是否为:
Index
Name
Price
并且您将Index字段设置为AUTO_INCREMENT。
最好的办法是从insert语句中删除该字段。
尝试
$command = "INSERT INTO inventory_items (Name, Price) VALUES ('Diamond', '3.99')";
因为你还没有插入索引。
希望有所帮助!