如何使用 PHP 執行帶有輸入和輸出參數的 MySQL 預存程序?

Patricia Arquette
發布: 2024-11-08 11:25:01
原創
1016 人瀏覽過

How to Execute MySQL Stored Procedures with Both Input and Output Parameters Using PHP?

使用PHP 呼叫同時帶有輸入和輸出參數的MySQL 預存程序

在PHP 中,執行需要輸入和輸出參數的MySQL儲存過程可能是一個挑戰。雖然 MySQLi 提供了單獨處理輸入和輸出參數的特定函數,但沒有直接支援這種情況。

為了克服此限制,需要涉及 MySQL 使用者變數的解決方法。以下詳細介紹了它的工作原理:

使用 MySQLi 流程介面:

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

$mysqli = mysqli_connect('host', 'user', 'password', 'database');

$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'];
登入後複製

這裡,我們先初始化輸入變數並建立與 MySQL 資料庫的連線。準備好的語句用於執行預存過程,並綁定輸入參數。執行後,將使用單獨的查詢來檢索儲存在 MySQL 使用者變數中的輸出參數。

使用 MySQLi 物件導向介面:

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

$mysqli = new mysqli('host', 'user', 'password', 'database');

$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];
登入後複製

此程式碼示範使用物件導向介面的相同方法,其中資料庫連線和預存程序執行透過物件方法處理。

透過利用解決方法MySQL 使用者變量,您可以使用 MySQLi 介面在 PHP 中有效地執行帶有輸入和輸出參數的預存程序。

以上是如何使用 PHP 執行帶有輸入和輸出參數的 MySQL 預存程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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