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

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

Susan Sarandon
Susan Sarandon原創
2024-11-06 19:13:02255瀏覽

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

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