【问题标题】:Right syntax to use near order by id desc limit 1按 id desc 限制 1 使用近顺序的正确语法
【发布时间】:2013-08-05 05:26:32
【问题描述】:

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

查看与您的 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'];
}

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

【问题讨论】:

  • $tbl_name$ID 的评估结果是什么?
  • 请告诉我们$prevquery 包含的内容。

标签: php mysql


【解决方案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";

【讨论】:

  • 当我回显和 c...它显示“查询为空”虽然表名和一切都是正确的
【解决方案2】:

这应该可以工作

$prevquery = "SELECT * FROM $tbl_name WHERE ID

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-07
        • 2018-07-01
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多