Rumah >pangkalan data >tutorial mysql >Contoh untuk menerangkan cara menggunakan prosedur tersimpan MySQL dalam PHP

Contoh untuk menerangkan cara menggunakan prosedur tersimpan MySQL dalam PHP

PHPz
PHPzasal
2023-04-17 15:26:01745semak imbas

Pengenalan kepada prosedur tersimpan MySQL dan contoh yang digunakan dalam PHP

Prosedur tersimpan MySQL ialah ciri yang berkuasa dalam pangkalan data MySQL. Ia boleh dijalankan secara bebas daripada aplikasi, melaksanakan satu siri penyata SQL dan mengembalikan hasil, dengan itu memudahkan pembangunan aplikasi juga boleh mengurangkan tekanan pelayan dengan berkesan dan meningkatkan prestasi pangkalan data; Artikel ini akan menerangkan pengetahuan asas berkaitan prosedur tersimpan MySQL dan menyediakan kod sampel untuk menggunakan prosedur tersimpan MySQL dalam PHP.

1. Pengetahuan asas tentang prosedur tersimpan MySQL

Prosedur tersimpan MySQL ialah koleksi penyata SQL tersusun yang digunakan untuk menyelesaikan tugas fungsi tertentu. Tidak seperti fungsi, prosedur tersimpan boleh menerima parameter input dan mengembalikan nilai, dan boleh dikongsi di kalangan pelanggan yang berbeza.

Sintaks prosedur tersimpan MySQL adalah seperti berikut:

CREATE [OR REPLACE] PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name datatype [, ...])
BEGIN
    -- 执行内容
END;

di mana CREATE PROSEDUR bermaksud mencipta prosedur tersimpan ATAU GANTI adalah pilihan, menunjukkan bahawa jika prosedur tersimpan dengan nama yang sama sudah wujud, gantikan prosedur tersimpan asal ; nama prosedur tersimpan mewakili nama parameter input/output bagi prosedur tersimpan;

Contoh berikut menunjukkan cara menulis prosedur tersimpan MySQL yang mudah:

CREATE PROCEDURE my_procedure(IN name VARCHAR(50))
BEGIN
    SELECT * FROM users WHERE name = name;
END;

2 Menggunakan prosedur tersimpan MySQL dalam PHP

Menggunakan prosedur tersimpan MySQL dalam PHP Prosesnya. PHP menyediakan dua antara muka, mysqli dan PDO, untuk kami memanggil prosedur tersimpan MySQL. Di sini kami mengambil mysqli sebagai contoh untuk memperkenalkan dan menyediakan kod sampel untuk rujukan.

Pertama, kita perlu menyambung ke pangkalan data MySQL, seperti berikut:

$mysqli = new mysqli("localhost", "root", "", "test");
if ($mysqli->connect_error) {
    die("连接失败: " . $mysqli->connect_error);
}

Seterusnya, kita perlu memanggil prosedur tersimpan dan lulus parameter. Mysqli menyediakan dua kaedah, iaitu bind_param dan call_user_func_array Di sini kami mengambil bind_param sebagai contoh untuk menggambarkan.

// 准备参数
$name = "Tom";

// 准备调用存储过程的语句
$stmt = $mysqli->prepare("CALL my_procedure(?)");
$stmt->bind_param("s", $name); // 绑定参数

// 执行存储过程
$stmt->execute();

// 处理返回结果
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo $row['id'] . " " . $row['name'] . " " . $row['age'] . "<br/>";
}

// 释放资源
$stmt->close();
$mysqli->close();

Dalam kod di atas, kami memanggil prosedur tersimpan my_procedure dan lulus parameter jenis rentetan. Parameter pertama bind_param ialah jenis parameter Di sini kami menggunakan s untuk mewakili jenis rentetan untuk butiran, sila rujuk dokumentasi rasmi PHP. Selepas melaksanakan prosedur tersimpan, kami mendapat set hasil yang dikembalikan melalui get_result, dan kemudian mengeluarkan setiap baris data secara bergilir-gilir.

Ringkasan

Artikel ini memperkenalkan asas prosedur tersimpan MySQL, serta kod sampel untuk menggunakan prosedur tersimpan MySQL dalam PHP. Menggunakan prosedur tersimpan membolehkan kami memproses pernyataan SQL dengan lebih cekap, meningkatkan prestasi pangkalan data, dan juga memudahkan interaksi dengan aplikasi. Dalam pembangunan sebenar, kita boleh memilih untuk menggunakan prosedur tersimpan atau kaedah lain untuk mengendalikan pangkalan data mengikut senario tertentu.

Atas ialah kandungan terperinci Contoh untuk menerangkan cara menggunakan prosedur tersimpan MySQL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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