当我运行一些我编写的php代码时,我收到以下消息:
您的SQL语法有错误; 检查对应的手册 您的MySQL服务器版本 在'条件附近使用正确的语法, 价格,名称,电子邮件)价值('假 标题','假子标题','假作者' 在第1行
我没有看到我的语法有任何问题,例如:
mysql_query("INSERT INTO table (x1, x2, x3) VALUES('$y1', '$y2', '$y3')");
答案 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')