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 ;
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);
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);
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'];
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!