從PDO 多個查詢中擷取多個結果集
PDO_MYSQLND 驅動程式在PHP 版本5.3 中引入了對多個查詢的支持。這允許使用者同時執行多個 SQL 查詢。但是,從這些查詢中檢索所有結果集可能具有挑戰性。
問題陳述
查詢「SELECT 1; SELECT 2;」會執行兩個查詢,但只傳回第一個查詢的結果集。第二個結果集似乎被丟棄。
解
要擷取多個結果集,必須使用 PDOStatement::nextRowset 方法。此方法將遊標前進到下一個行集的開頭。透過在第一個查詢後呼叫 nextRowset,使用者可以存取第二個查詢的結果集。
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
這將傳回第二個查詢的結果集。
優點和缺點
此實作允許使用不同的 FETCH 樣式取得每個查詢的結果。然而,它可能比簡單地傳回一個數組下的所有結果集的實作更複雜。儘管如此,靈活處理多個結果的能力在某些情況下可能很有價值。
以上是如何從單一 PDO MySQL 查詢中檢索多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!