首頁 >資料庫 >mysql教程 >如何使用 PDO_MYSQLND 從多個查詢中擷取多個結果集?

如何使用 PDO_MYSQLND 從多個查詢中擷取多個結果集?

DDD
DDD原創
2024-11-20 04:11:02981瀏覽

How Can I Retrieve Multiple Result Sets from Multiple Queries Using PDO_MYSQLND?

使用PDO 執行多個查詢

在PHP 版本5.3 中,PDO_MYSQL 驅動程式被替換為PDO_MY的支持。然而,從這些查詢中獲取多個結果集可能會令人困惑。

挑戰:

使用 PDO_MYSQLND 的 query() 方法執行多個 SELECT 查詢僅傳回第一個結果集。例如:

$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);

這段程式碼只會回傳第一個查詢的結果,即:

array(1) {
  [0]=>
  array(1) {
    [1]=>
    string(1) "1"
  }
}

解:

若要擷取後續結果集,必須使用PDOStatement::nextRowset()方法。

$stmt = $db->query("SELECT 1; SELECT 2;");
$stmt->nextRowset();
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));

這將傳回第二個查詢的結果。

實作:

這個實作可能看起來有點特殊,因為它如果多個查詢傳回一個陣列下的所有結果會更方便。但是,這種設計允許使用不同的獲取樣式來獲取每個結果集。

以上是如何使用 PDO_MYSQLND 從多個查詢中擷取多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn