Laravel 使用预处理语句和参数绑定来防止 SQL 注入。这种方法可以有效防止恶意用户在查询中插入恶意代码。以下是如何在 Laravel 中使用预处理语句和参数绑定的示例:
使用 DB
facade 的 prepare
方法创建预处理语句。例如,创建一个用于查询用户的预处理语句:
use Illuminate\Support\Facades\DB;
$stmt = DB::prepare('SELECT * FROM users WHERE username = :username AND password = :password');
使用 bindParam
方法将参数绑定到预处理语句。例如,将用户提供的用户名和密码绑定到预处理语句:
$username = 'exampleUser';
$password = 'examplePassword';
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
使用 execute
方法执行预处理语句。例如,查询数据库中的用户:
$result = $stmt->execute();
使用 fetch
或 fetchAll
方法获取查询结果。例如,获取查询到的用户:
$user = $result->fetch(PDO::FETCH_ASSOC);
通过这种方式,Laravel 会自动处理参数转义,从而防止 SQL 注入。你不需要担心用户输入的安全性问题,因为 Laravel 会确保参数在发送到数据库之前被正确转义。