当前位置: 首页 > article >正文

larave5.8记录运行时产生的所有sql

前言

记录运行时产生的所有sql记录,包括select和update等。适用于无法定位到执行的代码段,通过sql反向查找。

实现

  1. 编辑文件 larvel\app\Providers\EventServiceProvider.php
  2. 在boot函数中加入记录代码
    /**
     *
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();
        if (env('APP_DEBUG')) {
            //sql调试
            DB::listen(function ($sql) {
                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'";
                        }
                    }
                }
                $query = str_replace(['%', '?'], ['%%', '%s'], $sql->sql);
                $query = vsprintf($query, $sql->bindings);
                Log::alert('sql_log',['sql=>'.$query]);
            });
        }
    }

测试

在laravel\storage\logs\laravel.log中出现sql日志


http://www.kler.cn/a/299031.html

相关文章:

  • spring学习(spring-DI(setter注入、构造器注入、自动装配方式))
  • Word图片嵌入格式不正确的解决办法
  • 机动车油耗计算API集成指南
  • 后端使用Spring Boot框架 + 前端VUE 实现滑动模块验证码
  • 安卓环境配置及打开新项目教程,2024年12月20日最新版
  • Git实用指南(精简版)
  • 数据结构应用实例(四)——最小生成树
  • 性能测试 —— docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台!
  • Flask session cookie 失效在Safari中的解决方法
  • 《OpenCV计算机视觉》—— 图像金字塔
  • 记MySQL查询视图出现字符集编码不一致问题
  • redis的 stream数据类型实现 消息队列?
  • 在Vue 3中优化异步数据加载:利用`onMounted`与`Promise.all`
  • Spring Integration SFTP集成
  • 前端框架有哪些?全面解析主流前端框架
  • 【H2O2|全栈】关于CSS(1)CSS基础(一)
  • Android13默认开启电池百分比数字显示Framework
  • 项目答辩总结
  • NISP 一级 | 3.3 网络安全防护与实践
  • 取指操作流程
  • JavaWeb案例-登录认证
  • 【MRI基础】回波序列长度-echo train length ETL概念
  • 基于python+大数据爬虫技术+数据可视化+Spark的电力能耗数据分析与可视化平台设计与实现
  • UnLua调用蓝图变量、动画、函数
  • CSP-J 算法基础 排序算法的基本概念
  • 【Rust练习】12.枚举