MySQL 存储过程是一种预编译的 SQL 代码块,可以通过调用执行。它类似于编程语言中的函数,可以实现一系列 SQL 语句的执行,具有参数化、模块化、封装性等特点。
MySQL 存储过程主要分为两类:
SHOW DATABASES
。以下是一个简单的 PHP 中调用 MySQL 存储过程的示例:
<?php
// 数据库连接配置
$host = 'localhost';
$user = 'username';
$password = 'password';
$dbname = 'database_name';
// 创建数据库连接
$conn = new mysqli($host, $user, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 调用存储过程
$stmt = $conn->prepare("CALL get_user_by_id(?)");
$stmt->bind_param("i", $userId); // 绑定参数,"i" 表示整数类型
$userId = 1; // 假设要查询的用户 ID 为 1
$stmt->execute(); // 执行存储过程
// 获取结果集
$result = $stmt->get_result();
// 处理结果集
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
// 关闭连接
$stmt->close();
$conn->close();
?>
假设我们有一个名为 get_user_by_id
的存储过程,用于根据用户 ID 查询用户信息:
DELIMITER //
CREATE PROCEDURE get_user_by_id(IN user_id INT)
BEGIN
SELECT * FROM users WHERE id = user_id;
END //
DELIMITER ;
领取专属 10元无门槛券
手把手带您无忧上云