Laravel 查询生成器绑定

Laravel Query Builder bindings

有人可以解释一下为什么在 Laravel 中第一个代码有效而第二个代码无效。

$data = DB::select("SELECT * FROM people WHERE name LIKE '%john%'");


$data = DB::select("SELECT * FROM people WHERE name LIKE '?'", ['%john%']);

如果您要使用查询生成器,您可以这样做:

$data = DB::select("SELECT * FROM people WHERE name LIKE :name", ['name' => "%john%"]);

不过最好用Eloquent:

People::where('name', 'like', "%john%")->get();