2

如果代码被执行,它会显示错误:

检查与您的 MySQL 服务器版本相对应的手册,以获得在“ORDER BY ID DESC 限制 1”附近使用的正确语法

就像下面的例子:

$prevquery = "SELECT  * FROM $tbl_name WHERE  ID < $ID ORDER BY ID DESC limit 1";
$prevresult= mysql_query($prevquery) or die(mysql_error());

while($prevrow = mysql_fetch_row($prevresult))
{

  displaying the previous ID:-
  $prevID = $prevrow['ID'];
}

应该怎么做才能防止这种情况发生?

4

4 回答 4

1

Try this

$prevquery = "SELECT  * FROM $tbl_name WHERE  ID < '$ID' ORDER BY ID DESC limit 1";

If this does not work then echo the query and run in mysql phpmyadmin panel

echo $prevquery = "SELECT  * FROM $tbl_name WHERE  ID < '$ID' ORDER BY ID DESC limit 1";
于 2013-08-05T05:39:32.087 回答
0

附加说明,每当我看到表单的一般错误时......

检查与您的 MySQL 服务器版本相对应的手册,以获得在“ORDER BY ID DESC 限制 1”附近使用的正确语法

看起来“接近”的提示几乎总是指向 sql 语句中的问题,就在错误消息中显示的单引号字符串开始的位置之前。

因此,在这种情况下,错误引用了以“ORDER BY”开头的 sql 字符串,该字符串前面紧跟 $ID。我敢打赌 $ID 要么未定义(最终在您的 sql 字符串中为空白),要么 $ID 不是正确的数据类型。

无论哪种方式,正如其他人建议的那样,您需要回显或记录您的 sql 字符串以查看实际查询的内容。

于 2013-11-15T20:57:03.950 回答
0

您不能使用 LIMIT 用户“在哪里”。而是使用 ORDER by id desc LIMIT 1

于 2013-11-19T02:00:01.913 回答
0

这应该工作

$prevquery = "SELECT * FROM $tbl_name WHERE ID < '$ID' ORDER BY ID DESC limit 1";

$prevresult= mysql_query($prevquery) 或死(mysql_error());

而($prevrow = mysql_fetch_row($prevresult)) {

显示前一个 ID:- $prevID = $prevrow['ID']; }

于 2013-08-05T07:10:13.370 回答