PHP中的MySQL按错误排序
我正在为一个网站制作一个简单的cms系统,供非技术用户编辑 到目前为止还不错,但当我尝试运行这段代码时,我不断得到:您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“页面”顺序附近使用的正确语法。“页面顺序”ASC限制0,30 从错误的角度看,它看起来像是一个按节排序的问题,实际上它在没有它的情况下也可以工作PHP中的MySQL按错误排序,php,mysql,Php,Mysql,我正在为一个网站制作一个简单的cms系统,供非技术用户编辑 到目前为止还不错,但当我尝试运行这段代码时,我不断得到:您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“页面”顺序附近使用的正确语法。“页面顺序”ASC限制0,30 从错误的角度看,它看起来像是一个按节排序的问题,实际上它在没有它的情况下也可以工作 $sql = "SELECT * FROM 'pages' ORDER BY 'pages'.'pageOrder' ASC LIMIT 0 , 30
$sql = "SELECT * FROM 'pages' ORDER BY 'pages'.'pageOrder' ASC LIMIT 0 , 30";
$result = mysql_query($sql) or die(mysql_error());
现在我知道代码没有问题,因为最初我编写了自己的SQL,但失败后我从phpmyadmin中盗取了一些,它仍然给出错误,但它在phpmyadmin中工作
对此我真是束手无策,非常感谢您的帮助……您不应该写
“页面”
。表名和列名使用反勾号而不是单引号。单引号仅用于字符串
而且这里也不需要反勾号。通常,只有在SQL中为保留字的名称以及包含特殊字符或空格的名称才需要反勾号。所以你可以这样做:
SELECT * FROM pages ORDER BY pageOrder LIMIT 30
查询中的引号不正确。你可以用
$sql = "SELECT * FROM `pages` ORDER BY `pages`.`pageOrder` ASC LIMIT 0 , 30";
如果您真的需要完全限定表/列,或者干脆省去它并使用
$sql = "SELECT * FROM pages ORDER BY pageOrder ASC LIMIT 0 , 30";
起初我没有,SQL只是我直接从phpmyadmin中得到的,但这并不能解决我的问题…等我改正了,它确实解决了问题-我不明白为什么,但谢谢你,好先生:)@theflyinghaiwian-因为单引号(')仅用于字符串,将“表”作为字符串调用是一个语法错误。