php - PDO ORDER BY 不适用于非自动增量的字段

标签 php mysql

这是我的代码:

$q = $db->prepare("SELECT * from slider WHERE page = :page ORDER BY index ASC");
$q->bindValue(':page', basename($_SERVER['PHP_SELF']));
$q->execute();

if ($q->rowCount() > 0){
    $result = $q->fetchAll(PDO::FETCH_ASSOC);

    for ($i=0; $i < $q->rowCount(); $i++) { 
        $path = $result[$i]['path'];
        echo "<div><img src=\"$path\"></div>";
    }
}

目前,没有显示任何结果。 但是,如果我按不同的字段(即自动增量的“id”和表的主键)排序,我确实会得到按正确字段排序的结果。

最佳答案

'index ' 是 MySQL 中的保留字。如果您想将其用作列名,并且在查询中,您必须用反勾号将其括起来。

SELECT * from `slider` WHERE `page` = :page ORDER BY `index` ASC

关于php - PDO ORDER BY 不适用于非自动增量的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31412738/

相关文章:

javascript - 使用 jquery 文件上传保持文件顺序

java - 死锁预防(Java+MySQL)

mysql - 由于某种原因,加入更新需要 9 到 30 个小时?

mysql - 具有唯一约束的表有重复记录(MySQL 5.1.57)

php - hasMany 与 laravel 5.x 中的 belongsToMany

php - 安卓谷歌地图纬度/经度

mysql - 按特定 ID 从所有表中删除

mysql - 多个插入并保持 PDO 准备语句的安全性

php - 为什么我的 Twitter 应用程序返回端口错误?

php - 推特心情 API