我遇到了SQL问题。
此SQL语句:
SELECT * from chat WHERE id = 16
输出:
数组([id] => 16 [from] => 5 [to] => 6 [message] =>示例消息 [时间] => 1337674546)
以下SQL语句:
SELECT * from chat WHERE from = 5
输出错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行'from = 5'附近
如您所见,第二个语句应该返回相同的结果,但它不会。
我正在使用新安装的XAMPP,其中包括:
Apache / 2.2.21(Win32)mod_ssl / 2.2.21 OpenSSL / 1.0.0e PHP / 5.3.8 mod_perl / 2.0.4 Perl / v5.10.1
MySQL客户端版本:mysqlnd 5.0.8-dev - 20102224 - $ Revision:310735 $
似乎我在这里遗漏了一些明显的东西,但我无法弄清楚发生了什么。
答案 0 :(得分:1)
将第二个查询更改为:
SELECT * from chat WHERE `from`=5
from是一个保留的关键字,你应该总是避免使用它,或至少引用它来使它工作。
答案 1 :(得分:0)
from
是MySQL中的关键字,因此您需要转义关键字。因此,MySQL可以将其视为列名。使用``来转义关键字。
你可以试试这个。
SELECT * from chat WHERE `from`=5;
答案 2 :(得分:0)
当您使用单词from
作为字段名称时,您将需要以反向标记来转义它,因为它是一个保留字。
以下是整个SQL转义和大写:
SELECT * FROM `chat` WHERE `from` = 5
答案 3 :(得分:0)
SELECT * FROM `chat` WHERE `from`='5'
答案 4 :(得分:0)
由于form
是MY SQL中的保留关键字,因此您需要使用 反引号 来逃避。
SELECT * FROM chat WHERE `from`=5;