在 laravel 中防止 sql 注入

prevent sql injection in laravel

假设使用原始查询,我在 laravel

中有以下内容
$a = DB::select( DB::raw("SELECT * FROM table WHERE col = '$var'") );

在这种情况下,我如何保护我们的应用程序免受 SQL 注入攻击?

select() Illuminate\Database\Connection 中的方法有办法绑定我们的参数:

public function select($query, $bindings = array())
{
    ....
    ....
}

因此我们可以将绑定数组传递给 select() 方法

所以

$a = DB::select( DB::raw("SELECT * FROM table WHERE col = :var") , array(
   'var' => $var,
 ));