Bagaimana untuk menggunakan prosedur tersimpan dalam php+mysql

WBOY
Lepaskan: 2023-05-30 09:07:31
ke hadapan
1583 orang telah melayarinya

1. Prosedur tersimpan MySQL

Prosedur tersimpan ialah satu set penyata SQL tersusun yang digunakan untuk melaksanakan logik perniagaan tertentu. Berbanding dengan menulis logik perniagaan yang serupa pada lapisan aplikasi, menggunakan prosedur tersimpan boleh memindahkan logik ini ke peringkat pangkalan data, menjimatkan masa penghantaran rangkaian dan meningkatkan prestasi. Berikut ialah prosedur tersimpan MySQL yang mudah:

CREATE PROCEDURE `my_proc`(IN `p_id` INT, OUT `p_name` VARCHAR(20))
BEGIN
    SELECT `name` INTO `p_name` FROM `users` WHERE `id` = `p_id`;
END
Salin selepas log masuk

Prosedur tersimpan ini menerima parameter integer p_id dan memberikan nama pengguna yang sepadan kepada parameter output p_name. Apabila memanggil prosedur tersimpan ini pada lapisan aplikasi, anda hanya perlu lulus parameter p_id untuk mendapatkan nama pengguna yang sepadan. Kelebihan menggunakan prosedur tersimpan ialah pada kali prosedur tersimpan dipanggil, enjin MySQL telah pun menyusun prosedur ke dalam kod mesin, dan tidak perlu menghuraikan pernyataan SQL sekali lagi, jadi kecekapan pelaksanaan lebih tinggi.

2. PHP memanggil prosedur tersimpan MySQL

Dalam pembangunan PHP, menggunakan prosedur tersimpan boleh mengurangkan masa operasi pangkalan data. Berikut ialah kod PHP yang memanggil prosedur tersimpan MySQL di atas:

<?php
// 连接MySQL数据库
$db = new mysqli(&#39;localhost&#39;, &#39;user&#39;, &#39;password&#39;, &#39;test&#39;);
if ($db->connect_errno) {
    die(&#39;Connect Error:&#39; . $db->connect_error);
}

// 准备存储过程的参数和调用语句
$id = 1;
$p_name = &#39;&#39;;
$sql = "CALL my_proc($id, @p_name)";

// 执行调用语句
if ($db->multi_query($sql)) {
    // 获取输出参数
    $db->next_result();
    $result = $db->query("SELECT @p_name AS `name`");
    $row = $result->fetch_assoc();
    $p_name = $row[&#39;name&#39;];

    // 输出查询结果
    echo "User $id&#39;s name is $p_name";
} else {
    echo "Call Procedure Error:" . $db->error;
}

// 关闭数据库连接
$db->close();
?>
Salin selepas log masuk

Dalam kod PHP ini, pangkalan data MySQL mula-mula disambungkan, dan kemudian parameter input dan penyataan panggilan prosedur tersimpan disediakan. Memandangkan hasil pertanyaan yang dijana dengan memanggil prosedur tersimpan adalah output melalui parameter OUT, beberapa pernyataan SQL perlu dilaksanakan untuk mendapatkan hasil pertanyaan: mula-mula laksanakan pernyataan panggilan, kemudian laksanakan pernyataan SELECT, dan akhirnya dapatkan parameter output p_name. Selepas panggilan selesai, tutup sahaja sambungan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan prosedur tersimpan dalam php+mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan