我正在为非技术用户编辑的网站制作一个简单的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中有效...
我真的很有智慧,非常感谢你帮助...
答案 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";