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 相关文章推荐
如何开发一个虚拟域名系统
Oct 09 PHP
paypal即时到账php实现代码
Nov 28 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
php三种实现多线程类似的方法
Oct 30 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
Aug 02 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中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
原生js实现碰撞检测
2020/03/12 Javascript
Python实现的归并排序算法示例
2017/11/21 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python编程深度学习绘图库之matplotlib
2018/12/28 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
青年文明号事迹材料
2014/01/18 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
党员创先争优心得体会
2014/09/11 职场文书
Javascript 解构赋值详情
2021/11/17 Javascript
PHP获取学生成绩的方法
2021/11/17 PHP
nginx lua 操作 mysql
2022/05/15 Servers