MySQL在PHP中按错误排序

时间:2010-04-24 20:18:00

标签: php mysql

我正在为非技术用户编辑的网站制作一个简单的cms系统......

到目前为止一直很好,但是当我尝试运行这段代码时,我不断得到:你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在“'页面'ORDER BY'pages'附近使用正确的语法.'pageOrder'ASC LIMIT 0,30'在第1行

根据错误,它看起来像是按部分排序的问题,实际上没有它......

$sql = "SELECT * FROM 'pages' ORDER BY 'pages'.'pageOrder' ASC LIMIT 0 , 30";

$result = mysql_query($sql) or die(mysql_error());

现在我知道代码没有任何问题,因为最初我编写了自己的SQL但是在失败之后我从phpmyadmin中删除了一些,它仍然提供错误,但它在phpmyadmin中有效...

我真的很有智慧,非常感谢你帮助...

2 个答案:

答案 0 :(得分:7)

你不应该写'pages'。对表名和列名使用反引号而不是单引号。单引号仅用于字符串。

无论如何都不需要反引号。反引号通常仅对SQL中保留字的名称以及包含特殊字符或空格的名称是必需的。所以你可以这样做:

SELECT * FROM pages ORDER BY pageOrder LIMIT 30

答案 1 :(得分:3)

查询中的引号不正确。你可以使用

$sql = "SELECT * FROM `pages` ORDER BY `pages`.`pageOrder`  ASC LIMIT 0 , 30";

如果您确实需要完全限定表/列,或者只是将其保留并使用

$sql = "SELECT * FROM pages ORDER BY pageOrder ASC LIMIT 0 , 30";