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