MySQL预处理是一种在执行SQL查询之前对数据进行操作的方法,它可以提高查询性能、安全性和可读性,预处理主要包括以下几个步骤:
1、连接数据库
2、创建预处理语句
3、绑定参数
4、执行预处理语句
5、获取结果
6、关闭连接
下面详细介绍每个步骤:
使用mysqli或PDO扩展连接到MySQL数据库。
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn>connect_error) { die("连接失败: " . $conn>connect_error); }
使用prepare()
方法创建一个预处理语句,预处理语句的模板为:SELECT column1, column2, ... FROM table_name WHERE condition
。
$stmt = $conn>prepare("SELECT id, firstname, lastname FROM users WHERE age > ?");
使用bind_param()
方法将参数绑定到预处理语句中,参数可以是变量或直接的值,参数的类型可以是:i
(整数)、d
(双精度浮点数)、s
(字符串)等。
$stmt>bind_param("i", $age);
使用execute()
方法执行预处理语句。
$stmt>execute();
使用bind_result()
方法将结果绑定到变量上,然后使用fetch()
方法获取结果,使用close()
方法关闭结果集。
$stmt>bind_result($id, $firstname, $lastname); $stmt>store_result(); // 将结果存储在临时表中,以便多次获取结果集时不需要重新查询数据库 while ($stmt>fetch()) { // 循环获取结果集的每一行数据 echo "ID: " . $id . " Name: " . $firstname . " " . $lastname . "<br>"; } $stmt>close(); // 关闭结果集和预处理语句
使用close()
方法关闭数据库连接。
$conn>close();