在 Laravel 中,当你运行查询而且没有使用流畅的查询构建器时,是否必须使用 DB::raw
函数?
例如:
$result = DB::select("SELECT * FROM users");
$result2 = DB::select(DB::raw("SELECT * FROM users"));
在这两种情况下,我得到了相同的结果。那么为什么需要使用DB::raw
?
DB::raw()
用于生成任意的SQL命令,这些命令不会被查询构建器进一步解析。因此,它们可以通过SQL注入创建攻击向量。
查看此参考链接以获取更多详细信息:http://fideloper.com/laravel-raw-queries
这是使用 DB::raw
和 DB::select
的 示例。