我是PDO的新手,無法將提取結果放入數組中。MYSQL/PHP:使用帶PDO的FetchAll創建數組
以下代碼成功查詢數據庫。不過,我想將結果放入一個數組中,以便我可以單獨處理數組中的元素。我不確定下面是什麼$result
。它已經是一個數組了嗎?或者它是什麼。我想我需要使用fetchAll
來獲取數組。如果是這樣,將不勝感激適當的代碼做到這一點。或者如果$results
已經是一個數組,那麼與fetchAll
會有什麼區別?
//USE PDO TO CONNECT TO DBASE
$hostdb = "my host";
$namedb = "mydb";
$passdb = "bypass";
$userdb = "myusername";
try {
// Connect and create the PDO object
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
$conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8
// Define and perform the SQL SELECT query
$sql = "SELECT * FROM `comments` WHERE `userid` IN(118)";
$result = $conn->query($sql); // THIS WORKS
// $result = $sql->fetchAll(PDO::FETCH_OBJ); //THIS DOES NOT WORK
if($result !== false) {
// Parse the result set
foreach($result as $row) {
echo $row['id']. ' - '. $row['name']. ' - '. $row['category']. ' - '. $row['link']. '<br />';
}
}
$conn = null; // Disconnect
}
catch(PDOException $e) {
echo $e->getMessage();
}
它返回一個對象,但你可以遍歷任何物體或array.For使用fetchall你需要執行準備,RTFM.Didnt downvote你BTW – Mihai
使用fetchall將返回完整結果集變成一個變量。該變量是一個數組,結果集中每一行發生一次。根據您在fetchAll中使用的參數,它將是一個行數組或行對象數組。 – RiggsFolly
\ PDO :: FETCH_ASSOC和\ PDO :: FETCH_NUM允許您定義讀取模式。 \ PDO :: FETCH_ASSOC將返回只有字段=>值數組,而\ PDO :: FETCH_NUM返回數組與數字鍵 – bxN5