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

5.2以下版本

// 先引入DB
use DB;
// 或者直接使用 \DB::
DB::listen(function($sql, $bindings, $time) {
dump($sql);
});
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);
}
);

  

5.2及以上版本

Laravel 打印已执行的sql语句的更多相关文章

  1. laravel 跨库执行原生 sql 语句

    执行原生 sql 返回结果集

  2. 如何让SpringBoot工程在log/控制台中实时打印MyBatis执行的SQL语句

    工程下载:https://files.cnblogs.com/files/xiandedanteng/gatling20200429-4.zip 其实就是一句话设置的事情,实现步骤: 在applica ...

  3. log4j2打印Mybatis执行的SQL语句及SQL语句的执行时间

    http://blog.csdn.net/zjq852533445/article/details/78320012

  4. MySql使用show processlist查看正在执行的Sql语句

    今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命 ...

  5. orm分组,聚合查询,执行原生sql语句

    from django.db.models import Avg from app01 import models annotate:(聚合查询) ret=models.Article.objects ...

  6. LoadRunner 执行单句SQL语句

    LoadRunner 执行单句SQL语句 Action() { int NumRows=0; int i=1; //建立数据库连接 lr_db_connect("StepName=Datab ...

  7. Thinkphp 5 调试执行的SQL语句

    在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句.例如: User::get(1); echo User::getL ...

  8. mysql怎么终止当前正在执行的sql语句

    mysql怎么终止当前正在执行的sql语句 show processlist; kill 要杀的ID kill 7

  9. tcpdump来抓取执行的sql语句

    # tcpdump -n -nn -tttt -i eth1 -s 65535 'port 3306' -w tcpdump_mysql.ret -C 100 一个TCP包中包含多个mysql协议包, ...

随机推荐

  1. HDU - 4366 Successor DFS序 + 分块暴力 or 线段树维护

    给定一颗树,每个节点都有忠诚和能力两个参数,随意指定一个节点,要求在它的子树中找一个节点代替它,这个节点要满足能力值大于它,而且是忠诚度最高的那个. 首先,dfs一下,处理出L[i], R[i]表示d ...

  2. android 开发-ListView与ScrollView事件冲突处理(事件分发机制处理)

    ListView和ScrollView都存在滚动的效果,所以一般不建议listView和scrollView进行嵌套使用,但有些需求则需要用到两者嵌套.在android的学习中学了一种事件分发处理机制 ...

  3. Kotlin lateinit 和 by lazy 的区别

    1.lazy{} 只能用在val类型, lateinit 只能用在var类型 2.lateinit不能用在可空的属性上和java的基本类型上 3.lateinit可以在任何位置初始化并且可以初始化多次 ...

  4. <Win7硬件故障分析>

    查看当前系统正在运行的硬件信息. 右击计算机——属性——设备管理器看到下面: 一些常见的硬件故障: 主板故障 >开机不正常,偶尔出现突然的断电现象 >明明自己选择了关机,但是还是无法关机或 ...

  5. MvcPager.dll使用实现无刷新分页以及MvcPager的Nuget程序包实现刷新分页

    无刷新分页: 1.引入JQuery的NuGet程序包 2.引入程序包 3.引入MvcPager.dll  ,MvcPager.dll文件下载链接http://pan.baidu.com/s/1hsvB ...

  6. 上机练习2 生成计算机ID

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  7. Java基础反射-调用类

    Student类 package com.test.wang; import java.lang.reflect.Constructor; import java.lang.reflect.Field ...

  8. spring的工厂方法

    http://blog.csdn.net/nvd11/article/details/51542360

  9. vue地址插件多级联动自适应 + github地址

    https://github.com/cqzyl/vue-manyAddress

  10. python小游戏之贪吃蛇

    本程序需要安装pygame,请自行百度安装...... 废话不多说,直接上代码 import pygame,sys,time,random from pygame.locals import * # ...