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产生随机字符串函数
Dec 06 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
Nov 10 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
Jun 25 PHP
smarty实现多级分类的方法
Dec 05 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP7.0安装笔记整理
Aug 28 PHP
php session的锁和并发
Jan 22 PHP
深入解析PHP的Yii框架中的event事件机制
Mar 17 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 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实现上传图片保存到数据库的方法
2015/02/11 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
JavaScript 如何计算文本的行数的实现
2020/09/14 Javascript
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
Python脚本实现代码行数统计代码分享
2015/03/10 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
C语言面试题
2015/10/30 面试题
护理专业自荐信
2013/12/03 职场文书
餐饮总经理岗位职责
2014/03/07 职场文书
公益广告语集锦
2014/03/13 职场文书
教研活动总结
2014/04/28 职场文书
班级出游活动计划书
2014/08/15 职场文书
反四风对照检查材料
2014/09/22 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
机动车登记业务委托书
2014/10/08 职场文书
个人工作能力自我评价
2015/03/05 职场文书
家访教师心得体会
2016/01/23 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android