Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menggunakan prosedur tersimpan dalam php+mysql

Bagaimana untuk menggunakan prosedur tersimpan dalam php+mysql

WBOY
WBOYke hadapan
2023-05-30 09:07:311612semak imbas

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

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();
?>

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam