php - 通过 PDO 查询将 MySQL 数据库的每一行存储在一个对象中?

标签 php mysql arrays pdo

我尝试通过 PHP 和 PDO 查询从 MySQL 数据库中获取类似这样的内容:

return array(
    "Jungle Book" => new Book("Jungle Book", "R. Kipling", "A classic book."),
    "Moonwalker" => new Book("Moonwalker", "J. Walker", ""),
    "PHP for Dummies" => new Book("PHP for Dummies", "Some Smart Guy", "")
);

数据库的每一行都应该存储在一个对象中。 谁能帮我解决这个问题?

我试过这个:

return array(
    foreach ($dbh->query("SELECT * FROM books") as $row) {
        $row['name'] => new Book($row['name'], $row['author'], $row['description']);
    }
)

...但是数组中不允许使用 foreach...

背景:出于学习目的,我正在学习本教程:http://php-html.net/tutorials/model-view-controller-in-php/我现在正在尝试用与真实数据库一起工作的代码替换静态的书籍列表。

最佳答案

这个问题实际上与 mvc 或 pdo 无关,而与 PHP 语法完全无关。

您的任务相当简单,您只需要避免将所有代码放在一个操作符中的想法:

$data = array();
$stmt = $dbh->query("SELECT * FROM books");
foreach ($stmt->fetchAll() as $row) {
    $data[$row['name']] = new Book($row['name'], $row['author'], $row['description']);
}
return $data;

虽然 PDO 为您提供了语法糖,但在我看来,您必须首先学习底层的基本语句。

关于php - 通过 PDO 查询将 MySQL 数据库的每一行存储在一个对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17349070/

相关文章:

php - 如何使用 curl 将 JSON 发布到 PHP

php - mysql数据库连接错误

php - 获取文件的详细信息然后插入到数据库

mysql - 解除阻止来自外部的 MySQL 连接

php - 什么是原生为 Windows 编写的良好通用开源 IDE?

php - 超过 30 秒的最大执行时间 swift mailer

php - 无法创建迁移 phinx

arrays - 如何在数组上使用 Swift 2.0 popFirst()?

arrays - 声明数组但不定义数组(Shell 脚本)

java - 删除字符串中每个单词的所有重复项