Bagaimana untuk Memanggil Prosedur Tersimpan MySQL dengan Kedua-dua Parameter Input dan Output dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-11-07 04:09:03
asal
140 orang telah melayarinya

How to Call MySQL Stored Procedures with Both Input and Output Parameters in PHP?

Memanggil Prosedur Tersimpan MySQL dengan Kedua-dua Parameter Input dan Output (Bukan Parameter "INOUT") dalam PHP

Pengenalan:

Memanggil prosedur tersimpan MySQL daripada PHP adalah tugas biasa, tetapi apabila berurusan dengan kedua-dua parameter input dan output, ia boleh menjadi lebih kompleks. Artikel ini akan membimbing anda melalui pendekatan khusus yang diperlukan untuk membuat panggilan sedemikian menggunakan antara muka prosedur MySQLi.

Konfigurasi Prosedur Tersimpan:

Pertimbangkan prosedur tersimpan berikut dalam MySQL:

DELIMITER $$
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
)
BEGIN
    SET output_sum = input_param_1 + input_param_2 + input_param_3;
    SET output_product = input_param_1 * input_param_2 * input_param_3;
    SET output_average = (input_param_1 + input_param_2 + input_param_3) / 3;
END$$
DELIMITER ;
Salin selepas log masuk

Mengikat Parameter Input dan Output:

Untuk memanggil prosedur tersimpan dan menentukan kedua-dua parameter input dan output, gunakan fungsi mysqli_stmt_bind_param():

mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
Salin selepas log masuk

di mana $procInput1, $procInput2 dan $procInput3 ialah parameter input.

Untuk mendapatkan semula parameter output, anda perlu menggunakan pembolehubah pengguna dalam prosedur tersimpan anda dan kemudian mengambil nilainya selepas melaksanakan panggilan:

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
Salin selepas log masuk

di mana $select ialah pertanyaan yang mendapatkan semula pembolehubah pengguna (@jumlah, @produk, @purata) yang ditetapkan oleh prosedur tersimpan.

Kod Contoh:

Berikut ialah contoh kod lengkap:

$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'];
Salin selepas log masuk

Dengan mengikut langkah ini, anda boleh berjaya memanggil prosedur tersimpan MySQL yang memerlukan kedua-dua parameter input dan output.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Prosedur Tersimpan MySQL dengan Kedua-dua Parameter Input dan Output dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!