thinkphp在debug开启情况下 不显示数据库信息
通常我们做开发,有可能会在系统已上线的情况下万不得已开启debug让其出现具体的错误情况;当thinkphp开启debug的情况下会在SQL中暴露出来mysql具体使用的服务器及用户信息,这些敏感信息又不是希望可以看到的,那么可以在thinkphp的数据库链接中设置【trigger_sql】也就是监听SQL为false,即可;
但是如果又想自己查看具体执行的SQL 又不想显示数据库链接信息怎么办呢?只能修改文件 \vendor\topthink\think-orm\src\db\PDOConnertion.php 了;找到第581行代码如下:
1 2 3 |
if (!empty($config['trigger_sql'])) { $this->trigger('CONNECT:[ UseTime:' . number_format(microtime(true) - $startTime, 6) . 's ] ' . $config['charset']); } |
注释了,或者修改为:
1 2 3 |
if (!empty($config['trigger_sql'])) { $this->trigger('CONNECT:[ UseTime:' . number_format(microtime(true) - $startTime, 6) . 's ] ' . $config['charset']); } |
我这里直接修改成语言了;这样前台在显示的时候就显示为:CONNECT:[ UseTime:0.066218s ] utf8mb4
我这个是基于thinkcmf8做的修改使用的也是thinkphp8,其它版本类似了。