Laravel获取最后执行的SQL语句_Laravel打印SQL调试方法
发布时间 - 2025-11-29 00:00:00 点击率:次开启SQL日志需调用DB::enableQueryLog(),执行查询后通过collect(DB::getQueryLog())->last()获取最后SQL;推荐在AppServiceProvider中使用DB::listen监听SQL事件,格式化输出至日志文件;可借助barryvdh/laravel-debugbar可视化查看SQL执行详情,生产环境应关闭日志避免性能问题。
在Laravel开发中,调试SQL语句是排查数据库查询问题的重要手段。尤其是在使用Eloquent ORM或Query Builder时,实际执行的SQL可能与预期不符。掌握如何获取最后执行的SQL语句以及开启SQL日志打印,能极大提升开发效率。
启用查询日志并获取最后执
行的SQL
Laravel提供了内置的查询日志功能,可以记录所有执行的数据库语句。要获取最后一条SQL,可以按以下步骤操作:
1. 开启查询日志:
DB::enableQueryLog();2. 执行查询(例如):
$users = DB::table('users')->where('status', 1)->get();3. 获取最后一条SQL:
$lastQuery = collect(DB::getQueryLog())->last();dd($lastQuery);
输出结果会包含query、bindings和time三个字段。注意:bindings中的占位符需要手动替换才能看到完整SQL。
监听所有SQL执行事件(推荐方式)
更高效的方法是在应用启动时监听SQL事件,实时打印所有执行的SQL语句。可以在AppServiceProvider的boot方法中添加:
DB::listen(function ($query) {// 输出格式化SQL
$sql = str_replace('?', "'%s'", $query->sql);
$sql = vsprintf($sql, $query->bindings);
info("SQL: {$sql} | Time: {$query->time}ms");
});
这样每次数据库查询都会被记录到storage/logs/laravel.log中,方便调试和性能分析。
使用第三方包美化SQL输出
如果希望在开发环境更直观地查看SQL,可使用如barryvdh/laravel-debugbar等工具。安装后自动显示当前页面执行的所有SQL语句,包括执行时间、绑定参数和结果行数。
安装命令:
composer require barryvdh/laravel-debugbar --dev
注意事项
在生产环境中务必关闭查询日志功能,避免内存泄漏和性能下降。建议只在local环境下启用SQL监听或日志打印。
基本上就这些,不复杂但容易忽略。
# laravel
# composer
# app
# 工具
# 开发环境
# laravel开发
# sql语句
# 格式化输出
# sql
# require
# function
# 事件
# table
# 数据库
# 是在
# 数据库查询
# 执行时间
# 只在
# 第三方
# 能与
# 绑定
# 启动时
# 行数
# 推荐在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在自有机房高效搭建专业网站?
在线制作视频网站免费,都有哪些好的动漫网站?
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
jQuery validate插件功能与用法详解
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel distinct去重查询_Laravel Eloquent去重方法
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Java类加载基本过程详细介绍
如何在 Pandas 中基于一列条件计算另一列的分组均值
lovemo网页版地址 lovemo官网手机登录
如何快速搭建高效简练网站?
长沙做网站要多少钱,长沙国安网络怎么样?
如何快速搭建二级域名独立网站?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
EditPlus中的正则表达式 实战(4)
香港服务器租用每月最低只需15元?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
如何快速打造个性化非模板自助建站?
利用JavaScript实现拖拽改变元素大小
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
中山网站制作网页,中山新生登记系统登记流程?
免费视频制作网站,更新又快又好的免费电影网站?
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
javascript中的try catch异常捕获机制用法分析
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Laravel如何记录自定义日志?(Log频道配置)
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Laravel如何生成URL和重定向?(路由助手函数)
简历在线制作网站免费版,如何创建个人简历?
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel如何实现API版本控制_Laravel版本化API设计方案
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
如何用虚拟主机快速搭建网站?详细步骤解析
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在阿里云香港服务器快速搭建网站?


行的SQL