【问题标题】:trying to fetch result in ASC order but receive error尝试按 ASC 顺序获取结果但收到错误
【发布时间】:2014-03-30 01:02:53
【问题描述】:

我有这段代码(参考下文)以 ASC 顺序显示 mysql 的结果

function showMenu(){
global $con; // SIMPLY ADD THIS LINE
$result = mysqli_query($con,"SELECT * FROM user_menu ORDER BY key ASC");
$menu = '<ul class="nav navbar-nav">';
while($row = mysqli_fetch_array($result))
{
$menu .= '<li class="' . $row['status'] . '"><a href="' . $row['url'] . '" class="extend"     title="' . $row['url'] . '">' . $row['name'] . '</a></li>';
}
$menu .= '</ul>';

return $menu;
}

但我收到一条错误消息,提示“警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,boolean given in”,它指向第 38 行,第 38 行是“while($row = mysqli_fetch_array($result))”

如您所见,我试图按键按 ASC 顺序获取结果,并且键行包含数字,例如 0 1 2 3 4,因此结果应按数字顺序显示。

我怎样才能得到这个错误的突袭?想法,建议和建议请告诉我。提前致谢。

【问题讨论】:

标签: php mysql


【解决方案1】:

尝试使用反引号转义key 列名:

 SELECT * FROM user_menu ORDER BY `key` ASC;

【讨论】:

    【解决方案2】:

    Key 是 MySQL 中的保留字。可以看列表here.

    这意味着你需要转义它:

    $result = mysqli_query($con,"SELECT * FROM user_menu ORDER BY `key` ASC");
    

    如果您可以控制数据库,则应该更改列的名称。避免使用保留字作为标识符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-09
      • 2022-12-16
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多