laravel 获取某个查询的查询SQL语句

Posted jorzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 获取某个查询的查询SQL语句相关的知识,希望对你有一定的参考价值。

一、DB类查询

DB::connection()->enableQueryLog();     //开启执行日志
$count = DB::table(‘test‘)              //执行查询
->whereNull(‘deleted_at‘)
->where(‘id‘, ‘=‘, 3)
->where(‘Name‘, ‘=‘, ‘测试‘)
->count();
print_r(DB::getQueryLog());             //获取查询语句、参数和执行时间

返回值:

Array
(
    [0] => Array
        (
            [query] => select count(*) as aggregate from `test` where `deleted_at` is null and `id` = ? and `Name` = ?
            [bindings] => Array
                (
                    [0] => 3
                    [1] => 测试
                )
            [time] => 1
        )
)

 

如果是ORM封装的语句

$query = CdbForumSellthreadSearch::where($params)->orderBy("$orderby", "$ascDesc")->offset($start)->limit($limit);
$list = CdbForumSellthreadSearch::where($params)->orderBy("$orderby", "$ascDesc")->offset($start)->limit($limit)->get()->toArray();

//打印出的sql是预编译的sql语句,带有问号占位符的sql 
print_r($query->toSql());
echo ‘<pre>‘;

//下面打印出占位符对应的变量的值,数组里面的顺序和占位符的顺序是一致的
print_r($query->getBindings());

 

以上是关于laravel 获取某个查询的查询SQL语句的主要内容,如果未能解决你的问题,请参考以下文章

laravel-model实现复杂的查询语句

laravel-model实现复杂的查询语句

SQL语句获取日期的月份

如何用sql语句查询在某一时间之后的数据

怎样用sql语句获取某个字段的长度

SQL语句之子查询