首頁 > 資料庫 > mysql教程 > 如何在 PHP 中從 MySQL 預存程序檢索輸出參數?

如何在 PHP 中從 MySQL 預存程序檢索輸出參數?

Susan Sarandon
發布: 2024-11-06 19:13:02
原創
264 人瀏覽過

How to Retrieve Output Parameters from MySQL Stored Procedures in PHP?

在PHP 中呼叫帶有輸入和輸出參數的MySQL 預存程序

在使用MySQL 預存程序時,經常需要傳入和從資料庫中檢索資料。這就是輸入和輸出參數發揮作用的地方。但是,同時使用輸入和輸出參數可能會很困難,尤其是在不使用「INOUT」參數的情況下。

理解過程的輸入和輸出參數

讓我們考慮MySQL 資料庫中的範例預存程序:

CREATE PROCEDURE `test_proc`(
    in input_param_1 int,
    in input_param_2 int,
    in input_param_3 int,
    out output_sum int,
    out output_product int,
    out output_average int
)
登入後複製

此過程需要三個輸入參數(input_param_1、input_param_2、input_param_3)和三個輸出參數(output_sum、output_product、output_average)。輸入參數用於計算輸出參數。

使用 MySQLi 綁定輸入和輸出參數

要使用 MySQLi 從 PHP 呼叫此預存程序,您需要綁定輸入和輸出參數。在下面的程式碼中,我們使用過程介面建立連接,準備預存程序調用,綁定輸入參數,執行調用,並從用戶變數中檢索輸出參數:

<?php

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = mysqli_connect(...);

$call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)');
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
mysqli_stmt_execute($call);

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
$procOutput_sum     = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];

mysqli_stmt_close($call);
mysqli_close($mysqli);

?>
登入後複製

中上面的程式碼中, mysqli_prepare函數準備預存程序呼叫。 mysqli_stmt_bind_param 函數將輸入參數綁定到呼叫。 mysqli_stmt_execute 函數執行呼叫。

執行預存程序後,我們必須使用單獨的 SELECT 語句從使用者變數中擷取輸出參數。這是因為 MySQLi 缺乏直接檢索輸出參數的本機支援。

結論

透過了解如何使用MySQLi 在MySQL 儲存過程中綁定輸入和輸出參數,您可以有效地與您的資料庫互動並檢索PHP 應用程序所需的數據。

以上是如何在 PHP 中從 MySQL 預存程序檢索輸出參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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