奇怪的PHP错误消息

时间:2011-02-08 07:23:58

标签: php mysql

当我运行一些我编写的php代码时,我收到以下消息:

  

您的SQL语法有错误;   检查对应的手册   您的MySQL服务器版本   在'条件附近使用正确的语法,   价格,名称,电子邮件)价值('假   标题','假子标题','假作者'   在第1行

我没有看到我的语法有任何问题,例如:

mysql_query("INSERT INTO table (x1, x2, x3) VALUES('$y1', '$y2', '$y3')");

5 个答案:

答案 0 :(得分:6)

条件不允许作为列名(它是保留关键字),你需要用反引号(`)引用它来“绕过”:

INSERT INTO table_name (`condition`, price, name, email) VALUES (...)

请查看以获取更多信息:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

答案 1 :(得分:2)

在执行之前,只需回显完整的SQL查询,您就会发现问题所在。检查$ y1,$ y2,$ y3参数的值。

答案 2 :(得分:2)

如果您在phpMyAdmin中收到该消息,我的经验是它会在您的语法出错时开始显示您的错误。在你的情况下,似乎是在“条件”这个词。其中(如@pf.me所指出的)是MySQL中的保留字。

如果您将列更改为“选择”或“加入”,则会收到相同的错误。

这是MySQL 5.1的保留字列表(不确定您使用的版本) http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html

答案 3 :(得分:0)

字符串中有一个$ y',它打破了查询。就像$ y =“John的例子”。

答案 4 :(得分:0)

您似乎需要包装列名('x1', 'x2', 'x3')