PHP插入无法正常工作

PHP插入无法正常工作,php,mysql,sql,phpmyadmin,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 { ech

我的文件中有以下几行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

我的管理员说我使用的是MySQL客户端版本5.0.91。我做错了什么?我就是搞不懂!我尝试了很多搜索…

索引在MySQL中是一个保留字,因此,您需要更改列的名称,或者使用反勾号对其进行转义。尝试此
$命令

$command = "INSERT INTO inventory_items (`Index`, Name, Price) VALUES (NULL, 'Diamond', '3.99')";
在此处阅读有关保留字的更多信息:

尝试以下操作:

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

.

您能否验证库存项目表中的列是否为:

Index
Name
Price
索引字段设置为自动递增

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

试一试

因为你没有插入索引


希望有帮助

我已经像你说的那样试过了,但是得到了同样的错误:你的SQL语法有一个错误;查看与MySQL服务器版本对应的手册,以了解在第1行使用接近“@Index,Name,Price”值(NULL,'Diamond',3.99')的正确语法,它不是@而是
Index
。Yeeeeeeah谢谢兄弟:D:D:D…奇怪的引号是怎么回事?@user:这是MySQL处理引用标识符的方式,不完全确定他们为什么选择这些,但这就是饼干破碎的方式:PIt必须是backticks=(`)。我在列表中没有看到“db”,但我遇到了与OP相同的问题。我最终将我的表名更改为“dbentry”,结果成功了。那么,有没有其他我不知道的保留列表,或者我做错了什么?@Bryan:如果你只更改了表名,那么我猜db是另一个保留字。不过,我不确定是否还有其他列表。一般来说,列名和表名应该用反勾号括起来。如果(my)SQL的未来版本引入了一个新的保留字,您的一次查询可能会失败。@DeveloperChris:我同意。这在几年前确实发生在我身上。我记不起列名了,但我相信它实际上是
date
id
这里的答案解决了你的问题吗?
$command = "INSERT INTO inventory_items (Name, Price) VALUES ('Diamond', '3.99')";