PHP MySQL 预处理语句
创始人
2025-06-01 14:57:58

预处理语句对于防止 MySQL 注入是非常有用的。

预处理语句及绑定参数
预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。
预处理语句的工作原理如下:

  1. 预处理:创建 SQL 语句模板并发送到数据库。预留的值使用参数 “?” 标记 。例如:
INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
  1. 数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。
  2. 执行:最后,将应用绑定的值传递给参数(“?” 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。
    相比于直接执行SQL语句,预处理语句有两个主要优点:
connect_error) {die("连接失败: " . $conn->connect_error);
}// 预处理及绑定
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();echo "新记录插入成功";$stmt->close();
$conn->close();
?>

解析以下实例的每行代码:

INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)

在 SQL 语句中,我们使用了问号 (?),在此我们可以将问号替换为整型,字符串,双精度浮点型和布尔值。

接下来,让我们来看下 bind_param() 函数:

$stmt->bind_param("sss", $firstname, $lastname, $email);

参数有以下四种类型:

i - integer(整型)
d - double(双精度浮点型)
s - string(字符串)
b - BLOB(binary large object:二进制大对象)

相关内容

热门资讯

原创 向... 新朋友,老朋友,你们好。 我们又见面了。 感谢你们继续读我的碎碎念。 真的很开心。 上一篇文章发表后...
原创 1... 蚂蚁新村2025年12月28日职业小知识今日答题最新题目与正确答案。最新题目:以下哪一项是景区营销推...
原创 来... 马上就要过新年了,家人们有没有打算来济南旅游呢?说到玩,肯定少不了吃了,而鲁菜作为八大菜系之首,鲁菜...
三道鸡肉硬菜!简单到厨房小白也... 葱油手撕鸡: 制作方法 1. 鸡腿洗净,冷水下锅,加姜片、葱段和少许料酒,大火煮开后转小火煮8分...
来广东跨年,大家的选择就是最宝... 2025年的“余额不足”,选择在哪里跨年成为热门话题。在线旅行平台的大数据显示,酒店预订量最高的全国...