阅读量:0
在PHP中,可以使用mysqli或PDO扩展来与数据库交互,其中都有预处理语句的功能,可以对字符串进行过滤,防止SQL注入攻击。
以下是一个使用mysqli扩展的示例代码:
// 创建数据库连接 $conn = new mysqli("localhost", "username", "password", "dbname"); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 准备SQL语句 $sql = "SELECT * FROM users WHERE username = ?"; // 使用预处理语句 $stmt = $conn->prepare($sql); // 绑定参数 $stmt->bind_param("s", $username); // 设置参数值 $username = $_POST['username']; // 执行查询 $stmt->execute(); // 获取结果集 $result = $stmt->get_result(); // 遍历结果集 while ($row = $result->fetch_assoc()) { // 处理查询结果 echo $row['username'] . "<br>"; } // 关闭连接 $conn->close();
在上面的示例中,我们使用了预处理语句,通过bind_param方法绑定参数,这样可以确保用户输入的数据不会被当作SQL语句的一部分执行,从而防止SQL注入攻击。