Laravel打印sql

薄洪涛4年前PHP1013

在AppServiceProvider.php的boot方法中,增加以下代码

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'";
                }
            }
        }

        // 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);
    }
);


相关文章

Elasticsearch第二篇之数据操作

    上一篇向大家讲解了Elasticsearch的部署安装和基本设置,这篇文章就和大家一起熟悉下Elastic的数据库操作,和普通数据库不同,es库需要公告...

PostgreSQL教程之安装连接

PostgreSQL教程之安装连接

新公司需要用PostgreSQL数据库,而且网上的资料比较少,先自己整理一下;一、PostgreSQL是什么?PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全...

不同语言AES加密结果不同

不同语言AES加密结果不同

最近一直在和某保险公司的联调接口,他们的接口是AES加密过的,就是请求的报文体需要加密,返回的报文体需要解密;java实现的,然后我这边用php去调用,发现先了一件诡异的事情,两种语言的加密结果不一致...

谷歌浏览器加载前端资源status=canceled

谷歌浏览器加载前端资源status=canceled

如图,今天在做弹出框(modal中用了iframe)的时候,发现模态框弹出的时候,会有一些前端资源加载被取消,但是也会有加载时间,影响页面的加载速度;然后我尝试用火狐,发现没有这个问题经过一顿goog...

Elasticsearch为什么搜索那么快?

Elasticsearch为什么搜索那么快?

介绍Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elasticsearch 并不仅仅是 Lu...

phpstorm配置xdebug

phpstorm配置xdebug

1、首先写个phpinfo文件,然后访问,查看是否有xdebug扩展,如果没有请查看第二步,有的话直接第三步2,安装xdebug扩展,首先复制phpinfo页面所有(phpinfo页面直接ctrl+a...

发表评论    

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