我已经坐了几个小时试图找到ColdFusion告诉我的MySQL语法问题,但我看不到它。这是我的疑问:
SELECT *
FROM message_table
WHERE useridto = #session.userid# AND read = 0
我得到的错误告诉我:
“您的SQL语法有错误; 检查对应的手册 您的MySQL服务器版本 正确的语法在'read ='0''附近使用 在第4行“
我已经研究过MySQL,检查了我已经完成的具有IDENTICAL语法和工作的查询。我错过了一些简单的东西吗?
我应该提到#session.userid#
输出正确,所以不是那样。
答案 0 :(得分:6)
read
是MySQL中的保留关键字:
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
这也可能导致问题。我会更改您的列名或执行以下操作:
SELECT *
FROM message_table
WHERE useridto = #session.userid# AND `read` = 0
可以引用标识符或 不带引号的。如果标识符包含 特殊字符或是保留的 一句话,你必须随时引用它 参考它 标识符引号字符是反引号(“`”):
答案 1 :(得分:3)
read
是一个MySQL关键字。尝试用反引号(`)包围它:
SELECT * FROM message_table WHERE useridto = 5 AND `read` = 0