首頁  >  文章  >  資料庫  >  如何從單一 PDO 查詢中檢索多個結果集?

如何從單一 PDO 查詢中檢索多個結果集?

Patricia Arquette
Patricia Arquette原創
2024-11-17 12:06:02889瀏覽

How to Retrieve Multiple Result Sets from a Single PDO Query?

PDO 多個查詢:檢索多個結果集

PHP 5.3 在PDO_MYSQLND 驅動程式中引入了對多個查詢的支持,允許您執行多個SELECT一次呼叫中的查詢。但是,從這些查詢中檢索結果集可能會令人困惑。

考慮以下查詢:

$db->query("SELECT 1; SELECT 2;")

此查詢執行兩個 SELECT 查詢。然後使用 fetchAll(PDO::FETCH_ASSOC) 方法檢索結果集。但是,這只會傳回第一個查詢的結果:

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

使用PDOStatement::nextRowset

要擷取第二個查詢的結果,您需要使用PDOStatement::nextRowset 方法。此方法可讓您將語句遊標移到下一個結果集:

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

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

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

多種FETCH 樣式

使用PDOStatement::nextRowset 的優點是它允許您使用不同的FETCH樣式取得每個查詢。例如:

$stmt = $db->query("SELECT 1; SELECT 'a';");
$stmt->nextRowset();
$first = $stmt->fetchColumn(); // fetch first column of second query
$stmt->nextRowset();
$second = $stmt->fetch(PDO::FETCH_ASSOC); // fetch associative array of third query

這為您在處理多個查詢時提供了更大的靈活性。

以上是如何從單一 PDO 查詢中檢索多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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