Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的MySQL按错误排序_Php_Mysql - Fatal编程技术网

PHP中的MySQL按错误排序

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

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

到目前为止还不错,但当我尝试运行这段代码时,我不断得到:您的SQL语法中有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“页面”顺序附近使用的正确语法。“页面顺序”ASC限制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-因为单引号(')仅用于字符串,将“表”作为字符串调用是一个语法错误。