通过id desc limit 1使用接近顺序的正确语法

时间:2013-08-05 05:26:32

标签: php mysql

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

  

检查与您的MySQL服务器版本对应的手册,以便在'ORDER BY ID DESC limit 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 个答案:

答案 0 :(得分:1)

试试这个

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

如果这不起作用,则回显查询并在mysql phpmyadmin面板中运行

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

答案 1 :(得分:0)

这应该有效

$ prevquery =&#34; SELECT * FROM $ tbl_name WHERE ID&lt; &#39; $ ID&#39; ORDER BY ID DESC限制1&#34 ;;

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

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

显示以前的ID: -   $ prevID = $ prevrow [&#39; ID&#39;]; }

答案 2 :(得分:0)

另外请注意,每当我看到表格的一般错误时......

  

查看与您的MySQL服务器版本对应的手册   在'ORDER BY ID DESC limit 1'附近使用正确的语法

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

因此,在这种情况下,错误引用从'ORDER BY'开始的sql字符串,该字符串后面紧跟$ ID。我敢打赌$ ID未定义(并且最终在你的sql字符串中是空白的),或者$ ID不是正确的数据类型。

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

答案 3 :(得分:0)

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