mysqli_stmt
mysqli_stmt类
mysqli_stmt
PHP 5, PHP 7, PHP 8
mysqli_stmt 并不是一个独立的函数,而是指一组与 MySQLi 预处理语句相关的函数。这些函数用于准备、绑定参数、执行以及获取预处理语句的结果。预处理语句提高了执行 SQL 的安全性和效率,特别适用于防止 SQL 注入攻击。
以下是创建预处理语句的语法:
mysqli_stmt mysqli_prepare(mysqli $mysql, string $query)
成功时返回一个 mysqli_stmt 对象,失败时返回 false。
<?php $mysqli = new mysqli("localhost", "user", "password", "testdb"); <p>if ($mysqli->connect_error) {<br> die("连接失败: " . $mysqli->connect_error);<br> }</p> <p>$stmt = mysqli_prepare($mysqli, "SELECT name FROM users WHERE id = ?");<br> if ($stmt) {<br> mysqli_stmt_bind_param($stmt, "i", $userId);<br> $userId = 1;<br> mysqli_stmt_execute($stmt);<br> mysqli_stmt_bind_result($stmt, $name);<br> while (mysqli_stmt_fetch($stmt)) {<br> echo "用户名: " . $name;<br> }<br> mysqli_stmt_close($stmt);<br> } else {<br> echo "预处理失败: " . mysqli_error($mysqli);<br> }</p> <p>$mysqli->close();<br> ?><br>
本示例连接到 MySQL 数据库后,使用 mysqli_prepare() 创建了一个预处理语句,用于查询用户 ID 为 1 的用户名。通过 mysqli_stmt_bind_param() 绑定参数后,使用 mysqli_stmt_execute() 执行查询,并使用 mysqli_stmt_bind_result() 和 mysqli_stmt_fetch() 获取结果。最后关闭语句与数据库连接。