首頁 >後端開發 >php教程 >如何從 PHP/mysqli 中的預存程序檢索多個結果集?

如何從 PHP/mysqli 中的預存程序檢索多個結果集?

DDD
DDD原創
2024-11-01 18:45:02877瀏覽

How do you retrieve multiple result sets from a stored procedure in PHP/mysqli?

在PHP/mysqli 中使用預存程序檢索多個結果集

在PHP/MySQLi 中,執行具有多個結果集的儲存過程需要小心處理。要在執行預存程序後前進到第二個結果集,您必須:

  1. 使用 mysqli_stmt_execute: 使用 mysqli_stmt_execute 執行預存程序。
  2. 取得第一個結果集:呼叫 mysqli_stmt_get_result 取得第一個結果集,並使用 fetch_assoc、fetch_array 或 fetch_row 讀取其資料。
  3. 移到下一個結果集:讀取後第一個結果集,呼叫 mysqli_stmt_next_result 移到下一個結果集。
  4. 取得第二個結果集:再次呼叫 mysqli_stmt_get_result 取得第二個結果集並讀取其資料。

以下是使用 PHP/MySQLi 的範例程式碼:

<code class="php">$stmt = mysqli_prepare($db, 'CALL multiples(?, ?)');
mysqli_stmt_bind_param($stmt, 'ii', $param1, $param2);
mysqli_stmt_execute($stmt);

// Fetch the first result set
$result1 = mysqli_stmt_get_result($stmt);
while ($row = $result1->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

// Move to the second result set
mysqli_stmt_next_result($stmt);
$result2 = mysqli_stmt_get_result($stmt);
while ($row = $result2->fetch_assoc()) {
    printf("%d\n", $row['id']);
}

mysqli_stmt_close($stmt);</code>

此程式碼成功擷取並列印指定儲存過程中兩個結果集中的資料。

以上是如何從 PHP/mysqli 中的預存程序檢索多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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