laravel5.4开启sql调试

来源:互联网 发布:org.apache.struts2 编辑:程序博客网 时间:2024/06/05 14:35

打开app\Providers\AppServiceProvider.PHP,在boot方法中添加如下内容

public function boot(){    //sql调试    $sql_debug = config('database.sql_debug');    if ($sql_debug) {        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'";                    }                }            }            $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);            $query = vsprintf($query, $sql->bindings);            print_r($query);            echo '<br />';        });    }}

在app/config/database.PHP 添加

'sql_debug' => 0, //1输出所有执行的sql语句



或者在app/helper.php函数添加

 function getLastSql() {    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'";                }            }        }        $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);        $query = vsprintf($query, $sql->bindings);        print_r($query);        echo '<br />';    });}
在数据库操作语句之前调用即可打印
原创粉丝点击