我試着通過PHP和PDO查詢以獲得從MySQL數據庫是這樣的:通過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/和我現在嘗試用代碼與真實數據庫一起替換靜態列表。
您需要'$ dbh-> query(「SELECT * FROM books」) - > fetchAll(PDO :: FETCH_ASSOC)'才能使其工作。 Foreach是爲數組而製作的。你想要foreach一個對象(PDOStatement)。 –
@ N.B。,你不應該將fetchAll()鏈接到query(),因爲query()不能保證返回一個PDOStatement對象。它在錯誤時返回「false」。 –
@BillKarwin - 人在學習過程中,拋出像我們這樣的術語暫時沒有幫助。我知道如何使用手冊並對不起,如果我聽起來粗魯,但我個人確實知道。 –