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

Patricia Arquette
發布: 2024-11-17 12:06:02
原創
885 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板