-3

以下查询将不会执行

mysql_query("SELECT * FROM order WHERE orderID = 102;");

它产生以下错误消息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“order WHERE orderID = 102”附近使用正确的语法

如何编写能够成功查询该表的 SQL?

4

3 回答 3

7

订单是一个保留字。不要使用保留字作为表名或字段名;或将其包装在转义字符中,例如 ` for mysql。就我个人而言,我只是避免使用它们,因为从长远来看,它们通常会导致比它们更值得的头痛。

例子:

mysql_query("SELECT * FROM `order` WHERE orderID = 102;");

更多信息- 您可以在此处获取有关保留字的更多信息https://dev.mysql.com/doc/refman/5.5/en/keywords.html

于 2012-05-22T17:24:29.213 回答
0

让我发疯的是人们假设查询会起作用,然后甚至不打扰要求数据库解释为什么事情会爆炸。尝试这个:

$result = mysql_query("SELECT * FROM order WHERE orderID = 102;") or die(mysql_error());

同样,除非有比您上面显示的更多的代码,否则您必须捕获查询调用的返回值,因为该返回值是您的结果句柄,您可以从中获取结果。如果没有该语句句柄,您基本上是在浪费数据库服务器(和您自己的)时间。

于 2012-05-22T17:23:51.180 回答
-1

尝试
mysql_query("SELECT * FROM order WHERE orderID = 102;") or die("MySQL ERROR: ".mysql_error());

于 2012-05-22T17:24:00.833 回答