php - 如何在 PDO 中打印 while() 循环

标签 php mysql pdo

我有一个包含 4 列的数据库表:Name , Comment , Star , Status .

我想在一个页面上显示表的所有记录。这是我的查询:

$sth = $this->db->prepare("SELECT * FROM comment WHERE status = 1");
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();

$reviews = array();

while($row = $sth->fetch()){    
    $reviews->name = $row['name'];
    $reviews->comment = $row['comment'];
    $reviews->star = $row['star'];
}

return $reviews;

但是,var_dump($reviews)显示array(0) { } 。我哪里出错了?

最佳答案

您要使用 -> 运算符将数组作为对象访问,请改用 []

$reviews = array();

while($row = $sth->fetch()){    
    $reviews[]['name'] = $row['name'];            # <---- Change them like this.
    $reviews[]['comment'] = $row['comment'];
    $reviews[]['star'] = $row['star'];
}

关于php - 如何在 PDO 中打印 while() 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881179/

相关文章:

php - 在另一个 Ajax Load 加载的 Div 上使用 JQuery Ajax Load

php - 捕获无条件结束的字符串

php - 使用 PHP 验证国际电话号码

mysql - SQL 左连接子查询问题

php - 如何正确地将 mySQL 查询转换为 PDO

php - 为每个数组运行插入重复更新

php - 建议 PHP 5.3 使用哪种 bcrypt 实现?

mysql - 从 MySQL 中的查询列创建排名列

php - 数据库连接在 Yii cronjob 中不起作用

php - PDO MySQL 查询只返回一组结果