Laravel5.* 打印出执行的sql语句的方法


Posted in PHP onJuly 24, 2017

本文介绍了Laravel5.* 打印出执行的sql语句的方法,分享给大家,具体如下:

打开app\Providers\AppServiceProvider.PHP,在boot方法中添加如下内容

5.2以下版本

// 先引入DB 
use DB;
// 或者直接使用 \DB::
 DB::listen(function($sql, $bindings, $time) {
        dump($sql);
      });

5.2及以上版本

use DB;
// 或者直接使用 \DB::
// 只能接受一个参数

QueryExecuted {#84 ?
 +sql: "select * from `posts` where `slug` = ? limit 1"
 +bindings: array:1 [▶]
 +time: 0.59
 +connection: MySqlConnection {#85 ▶}
 +connectionName: "mysql"
}

 DB::listen(function($sql) {
        dump($sql);
        // echo $sql->sql;
        // dump($sql->bindings);
      });

// 如果要放入日志文件中
DB::listen(
  function ($sql) {
    // $sql is an object with the properties:
    // sql: The query
    // bindings: the sql query variables
    // time: The execution time for the query
    // connectionName: The name of the connection

    // To save the executed queries to file:
    // Process the sql and the bindings:
    foreach ($sql->bindings as $i => $binding) {
      if ($binding instanceof \DateTime) {
        $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
      } else {
        if (is_string($binding)) {
          $sql->bindings[$i] = "'$binding'";
        }
      }
    }

    // Insert bindings into query
    $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);

    $query = vsprintf($query, $sql->bindings);

    // Save the query to file
    $logFile = fopen(
      storage_path('logs' . DIRECTORY_SEPARATOR . date('Y-m-d') . '_query.log'),
      'a+'
    );
    fwrite($logFile, date('Y-m-d H:i:s') . ': ' . $query . PHP_EOL);
    fclose($logFile);
  }
);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 存取 MySQL 数据库的一个例子
Oct 09 PHP
ie6 动态缩略图不显示的原因
Jun 21 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
Apache中php.ini的设置方法
Feb 28 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
从wamp到xampp的升级之路
Apr 08 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 #PHP
PHP实现的登录页面信息提示功能示例
Jul 24 #PHP
PHP检查网站是否宕机的方法示例
Jul 24 #PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 #PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 #PHP
php实现和c#一致的DES加密解密实例
Jul 24 #PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 #PHP
You might like
PHP 强制下载文件代码
2010/10/24 PHP
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
JavaScript & jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
vue2.0 实现富文本编辑器功能
2019/05/26 Javascript
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
python实现人脸识别代码
2017/11/08 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
详解python中list的使用
2019/03/15 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
python挖矿算力测试程序详解
2019/07/03 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
pycharm的python_stubs问题
2020/04/08 Python
浅谈JupyterNotebook导出pdf解决中文的问题
2020/04/22 Python
零基础小白多久能学会python
2020/06/22 Python
Python内置函数及功能简介汇总
2020/10/13 Python
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
学校安全工作制度
2014/01/19 职场文书
小学母亲节活动方案
2014/03/14 职场文书
优秀校长事迹材料
2014/12/24 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
门店店长岗位职责
2015/04/14 职场文书