在 PHP 中,使用 MySQLi 的预处理语句可以提高性能并防止 SQL 注入攻击。预处理语句将参数与 SQL 查询分开,使得在执行查询时,参数值会自动转义,从而避免了 SQL 注入的风险。
以下是使用 MySQLi 预处理语句的示例:
<?php
// 创建数据库连接
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 预处理 SQL 查询
$stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
// 绑定参数
$stmt->bind_param("ss", $username, $email);
// 设置参数值
$username = "JohnDoe";
$email = "john.doe@example.com";
// 执行预处理语句
if ($stmt->
execute()) {
echo "新记录插入成功";
} else {
echo "Error: " . $stmt->error;
}
// 关闭预处理语句和数据库连接
$stmt->close();
$conn->close();
?>
在这个示例中,我们首先创建了一个到 MySQL 数据库的连接。然后,我们使用 prepare()
方法创建一个预处理语句,该语句将插入一条新的用户记录。接下来,我们使用 bind_param()
方法将参数与 SQL 查询中的占位符绑定。最后,我们设置参数值并执行预处理语句。
注意:在这个示例中,我们使用了两个占位符 “ss”,分别表示两个参数都是字符串类型。根据你的需求,你可以使用其他类型的占位符,例如 “is”(整数)、“d”(浮点数)等。