函数名:mysqli::prepare()
适用版本:PHP 5, PHP 7
用法: mysqli::prepare() 函数用于准备一个SQL语句,以便后续执行。它是mysqli类的一个方法,需要通过一个mysqli对象进行调用。
语法: mysqli::prepare(string $query) : mysqli_stmt
参数:
- $query:要准备的SQL语句,可以包含占位符(如"?")。
返回值: 返回一个mysqli_stmt对象,可以用于后续绑定参数和执行查询。
示例:
// 创建mysqli对象
$mysqli = new mysqli("localhost", "username", "password", "database");
// 检查连接是否成功
if ($mysqli->connect_errno) {
die("连接失败: " . $mysqli->connect_error);
}
// 准备SQL语句
$query = "SELECT * FROM users WHERE id = ?";
// 调用prepare方法准备语句
$stmt = $mysqli->prepare($query);
// 绑定参数
$id = 1;
$stmt->bind_param("i", $id);
// 执行查询
$stmt->execute();
// 获取结果集
$result = $stmt->get_result();
// 循环输出结果
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . ", Name: " . $row['name'];
}
// 关闭结果集和连接
$result->close();
$stmt->close();
$mysqli->close();
注意事项:
- 在调用prepare方法之前,需要先创建一个mysqli对象,并确保连接成功。
- 占位符(如"?")用于在SQL语句中表示参数的位置,可以根据需要使用多个占位符。
- bind_param方法用于绑定参数,第一个参数是参数类型,可以使用以下类型标识符:i(整数)、d(双精度浮点数)、s(字符串)、b(BLOB)。
- 执行查询后,可以使用get_result方法获取结果集,然后使用fetch_assoc方法循环输出结果。
- 最后记得关闭结果集、语句和连接,以释放资源。