【问题标题】:Why to use DB::raw inside DB::select in Laravel?为什么在 Laravel 的 DB::select 中使用 DB::raw?
【发布时间】:2015-10-27 13:47:35
【问题描述】:

当你在运行查询并且没有使用 Laravel 中的流畅查询构建器时,是否必须使用函数 DB::raw

例如

$result = DB::select("SELECT * FROM users");

$result2 = DB::select(DB::raw("SELECT * FROM users"));

在这两种情况下我得到相同的结果。那么为什么一定要用DB::raw呢?

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    DB::raw() 用于生成不被解析的任意 SQL 命令 查询生成器的任何进一步。因此,他们可以通过 SQL 注入 create a vector for attack

    检查此参考。链接,详细信息:http://fideloper.com/laravel-raw-queries

    DB::rawDB::select 中的Example

    【讨论】:

    • 所以在我的示例中,我猜想使用 DB::raw 的查询更快,因为 laravel 不检查或验证任何内容。
    • 我会说是的,您可以假设/得出结论,在某些情况下,例如此示例 (stackoverflow.com/questions/27410909/…),如果 sql 语句仅供内部使用,您可以单独使用 DB::raw。并且您确定是内容。
    猜你喜欢
    • 2017-11-17
    • 1970-01-01
    • 2018-07-06
    • 2015-07-14
    • 2018-10-24
    • 2019-01-10
    • 1970-01-01
    • 2015-03-26
    • 2016-07-29
    相关资源
    最近更新 更多