在 PDO 中管理多個查詢
PDO 引入了透過其 PDO_MYSQLND 驅動程式同時執行多個查詢的支援。但是,從這些查詢中檢索多個結果集是一個挑戰。
請考慮以下程式碼範例:
$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);
執行此程式碼將只傳回第一個 SELECT 查詢的結果集。若要存取第二個 SELECT 查詢的結果,您必須使用 PDOStatement::nextRowset 方法。
$stmt = $db->query("SELECT 1; SELECT 2;"); $stmt->nextRowset(); var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
使用 PDOStatement::nextRowset,您可以迭代多個結果集,從而允許您單獨處理它們。
此實作可能看起來不尋常,但它透過允許將不同的 FETCH 樣式套用至個別查詢來提供彈性。不過,如果所有結果集都在一個陣列下傳回會更簡單。
以上是如何從同時 PDO 查詢中檢索多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!