在 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”(浮点数)等。