根據 PDO 結果迭代數組兩次
使用 PDO 時,可能需要多次迭代獲取的數組。然而,與 MySQL 的 mysql_data_seek() 方法不同,PDO 不提供直接重置陣列指標的方法。要實現相同的功能,必須採用替代方法。
解決方案是將獲取的結果儲存到數組中,然後迭代該數組兩次。以下是範例:
$pdo = new PDO('mysql:host=' . $host . ';dbname='.$database, $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $pdo->prepare('SELECT * FROM mytable WHERE active = 1 ORDER BY name ASC'); $stmt->setFetchMode(PDO::FETCH_ASSOC); $stmt->execute(); $rows = $stmt->fetchAll(); foreach ($rows as $r) { // first run } foreach ($rows as $r) { // seconds run }
在修改後的程式碼中:
透過將結果儲存到array,保留了對同一數組進行兩次迭代(每次都從第 0 行開始)的初衷。此方法為處理 PDO 結果提供了強大且高效的解決方案。
以上是如何迭代 PDO 結果數組兩次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!