我尝试通过 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/