为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Laravel 5中执行查询?DB :: getQueryLog()返回空数组

如何在Laravel 5中执行查询?DB :: getQueryLog()返回空数组

PHP
米琪卡哇伊 2019-12-11 13:09:26
我正在尝试查看查询日志,但DB::getQueryLog()只返回一个空数组:$user = User::find(5);print_r(DB::getQueryLog());结果Array()如何查看此查询的日志?
查看完整描述

3 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

如果您真正关心的只是用于快速调试目的的实际查询(最后一个运行):


DB::enableQueryLog();


# your laravel query builder goes here


$laQuery = DB::getQueryLog();


$lcWhatYouWant = $laQuery[0]['query']; # <-------


# optionally disable the query log:

DB::disableQueryLog();

做一个print_r()上$laQuery[0]得到充分的查询,包括绑定。($lcWhatYouWant上面的变量会将变量替换为??)


如果您使用的不是主要的mysql连接,则需要改用以下这些:


DB::connection("mysql2")->enableQueryLog();


DB::connection("mysql2")->getQueryLog();

(连接名称为“ mysql2”)



查看完整回答
反对 回复 2019-12-12
?
森栏

TA贡献1810条经验 获得超5个赞

把它放在routes.php文件中:


\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {

    echo'<pre>';

    var_dump($query->sql);

    var_dump($query->bindings);

    var_dump($query->time);

    echo'</pre>';

});

由msurguy提交,此页面中的源代码。您将在注释中找到laravel 5.2的此修复代码。



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 282 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信