我有一个php pdo脚本,我想在“field5”中选择编号最高的记录(来自MySQL数据库中的表)。我还有一些其他限制,见下文:
$stmt=$db->query("SELECT `field1`,`field2` FROM ".$tablename." WHERE
`field3`!=".$variable1." AND `field3`!=".$variable2." AND
`field4`='xx' AND `field5`<".$variable3." ORDER BY DESC `field5` LIMIT
1");
我在try语句中有很多代码,而在catch语句中我使用
var_dump($ex->getMessage());
从异常$ ex。
获取异常消息现在,当我执行代码时,我收到以下异常消息:
'SQLSTATE [42000]:语法错误或访问冲突:1064您有 SQL语法错误;查看与您的手册相对应的手册 MySQL服务器版本,用于在'DESC
field5
附近使用正确的语法 限制1'在第3行'(长度= 232)
我对任何可能出错的建议表示感谢!
答案 0 :(得分:0)
更改
ORDER BY DESC field5
到
ORDER BY field5 DESC
答案 1 :(得分:0)
请参考MySQL manual以获取select query的语法。您犯了一个简单的错误,即查询语法错误。您最初只能通过引用来订购列:
ORDER BY '{Column-Name}'
然后只有您可以定义如何在ASC或DESC中订购它。
ORDER BY '{Column-Name}' [ASC|DESC]
所以你必须改变查询,如下所示:
$stmt=$db->query("SELECT `field1`,`field2` FROM ".$tablename." WHERE
`field3`!=".$variable1." AND `field3`!=".$variable2." AND
`field4`='xx' AND `field5`<".$variable3." ORDER BY `field5` DESC
LIMIT 1");