mySQL语法问题

时间:2012-05-22 09:03:06

标签: php mysql syntax

我遇到了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 $

似乎我在这里遗漏了一些明显的东西,但我无法弄清楚发生了什么。

5 个答案:

答案 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;