mysqli::prepare
(mysqli_prepare)准备一条SQL语句以便执行
PHP 5 >= 5.0.0,PHP 7,PHP 8
mysqli::prepare 用于预处理 SQL 语句。它准备一个 SQL 语句模板用于执行,避免 SQL 注入,并且在执行时可以绑定参数,从而提高安全性和性能。
public mysqli_stmt mysqli::prepare(string $query)
成功时返回一个 mysqli_stmt 对象(表示预处理语句),失败时返回 false。
$mysqli = new mysqli("localhost", "user", "password", "database"); <p>if ($stmt = $mysqli->prepare("SELECT name, age FROM users WHERE id = ?")) {<br> $stmt->bind_param("i", $user_id);<br> $user_id = 1;<br> $stmt->execute();<br> $stmt->bind_result($name, $age);<br> while ($stmt->fetch()) {<br> echo "Name: $name, Age: $age\n";<br> }<br> $stmt->close();<br> }<br> $mysqli->close();<br>
示例中先创建了一个 mysqli 对象连接数据库,然后调用 prepare 方法准备一个带有参数占位符的查询语句。使用 bind_param 绑定参数,参数类型为整数("i"),随后执行语句并绑定结果变量,最后通过循环获取并输出查询结果。