当前位置:首页 > PHP > 正文内容

Laravel记录SQL操作日志的方法

陈杰2年前 (2021-01-29)PHP3580

在laravel中我们有一个需求就是,涉及到sql操作的update,insert,delete操作的语句,我们都要写一个日志来记录一下


说说方法吧。


在项目目录app/Providers/AppServiceProvider.php中添加代码


/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
       DB::listen(function ($query) {
           $tmp    = str_replace('?', '"' . '%s' . '"', $query->sql);
           $tmp    = vsprintf($tmp, $query->bindings);
           $tmp    = str_replace("\\", "", $tmp);
           $action = substr($tmp, 0, 6);
           if ($action == 'update' || $action == 'delete' || $action == "insert") {
               $myfile = fopen("sql.txt", "a+") or die("Unable to open file!");
               fwrite($myfile, $tmp . "   use_time:" . $query->time . "ms   " . date('Y-m-d H:i:s') . " \n\n");
               fclose($myfile);
           }
       });
}


最终在public目录下写入了sql.txt文件中


image.png

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由何烦过虎溪发布,如需转载请注明出处。

转载请注明出处:http://95shouyou.com/?id=37

分享给朋友:

相关文章

通过supervisor管理laravel的queue队列

通过supervisor管理laravel的queue队列

配置文件[program:queue]command=php artisan queue:work redis --tries=3 --delay=3directory=/www/wwwroot/sh...

laravel通过模板html生成word文档

laravel通过模板html生成word文档

因为公司项目需要,内部的管理系统有一个php实时查询数据库,根据内容来生成word文档排版没有什么需求,实现原理是查询数据库,然后用laravel自带的模板引擎,生成一个html网页,然后修改网页的r...

laravel实现微信公众号授权登录实战

微信公众号授权登录实战框架:laravel依赖:overtrue/wechat首先安装一下easywechat依赖composer require overtrue/wechat:...

Laravel带条件查询多个count

Laravel带条件查询多个count

在一个数据表中,我们需要用到聚合函数count来查询符合条件的总数。举例一个场景:我们有一个帖子,这个帖子可以分别被好中差评,好中差评记录用一个单独的记录表来存储。如果用户点击好评,那么该帖子作者的经...

利用workerman实现webrtc实时音视频通话

利用workerman实现webrtc实时音视频通话

实现原理利用workerman的websocket实现实时消息传递。webrtc自带p2p功能,利用STUN中继服务器实现webrtc实时音视频看看我们的前端文件,只是一个单页面<html>...

php对接支付宝转账到第三方接口实战

公司项目有一个用户钱包系统,用户创作的内容可以收到游客的打赏,当然就需要提现的接口了。最终选定的是支付宝转账接口,公司代收账户直接打款给用户绑定的支付宝账号,再也不用人工手动打款了。上代码准备好工具,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。