
Laravel5:sql语句的正确打印方式
开启查询日志记录:首先,我们需要使用
发布日期:2025-04-04 05:08:35
浏览次数:11
分类:精选文章
本文共 956 字,大约阅读时间需要 3 分钟。
为了在Laravel中更方便地记录完整的SQL语句,而不是分开显示语句和参数,我们可以使用数据库监听器来捕获并格式化每个查询。以下步骤展示了如何实现这一点:
DB::listen()
方法来跟踪数据库查询。此外,我们还可以自定义日志记录路径和格式。\DB::listen(function (\Illuminate\Database\Statement $sql) { // 替换占位符 $query = str_replace(['%'], ['%%'], $sql->sql); // 格式化参数 foreach ($sql->bindings as $i => $binding) { if ($binding instanceof \DateTime) { $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\''); } elseif (is_string($binding)) { $sql->bindings[$i] = "'$binding'"; } } // 格式化查询 $query = vsprintf($query, $sql->bindings); // 写入日志文件 $logPath = storage_path('logs/' . date('Y-m-d')) . '_query.log'; $logFile = fopen($logPath, 'a+'); fwrite($logFile, "[{$date}] - {$query}\n", date('Y-m-d H:i:s')); fclose($logFile);});
- 配置服务提供器:将上述代码添加到
AppServiceProvider
的boot
方法中,这将确保每次数据库查询都被记录到日志文件中。
这样,完成后,我们就能在storage/log
目录下找到相应的查询日志文件,里面将包含完整的SQL查询语句及其参数值,便于验证和调试。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月15日 05时29分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
计算机网络基础:PKI(公钥基础设施)
2025-03-28
乒乓球问题
2025-03-28
回溯法介绍
2025-03-28
有了Trae,人人都是程序员的时代来了
2025-03-28
程序员都看不懂的代码
2025-03-28
LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
2025-03-28
CentOS 系列:CentOS 7文件系统的组成
2025-03-28
Docker部署postgresql-11以及主从配置
2025-03-28
EnvironmentNotWritableError: The current user does not have write permissions to the target environm
2025-03-28
kali安装docker(亲测有效)
2025-03-28
PHP系列:PHP 基础编程 2(时间函数、数组---实现登录&注册&修改)
2025-03-28
PHP系列:使用PHP实现登录注册功能的完整指南
2025-03-28
"WARNING: Increasing RAM size to 1GB" and "Cannot set up guest memory 'xxx.ram': Invalid argument".
2025-03-28
04-docker-commit构建自定义镜像
2025-03-28
05-docker系列-使用dockerfile构建镜像
2025-03-28
09-docker系列-docker网络你了解多少(下)
2025-03-28