PHP编程:Laravel5.* 打印出执行的sql语句的方法
发布时间:2020-09-01 11:03:03 所属栏目:PHP 来源:互联网
导读:介绍《PHP编程:Laravel5.* 打印出执行的sql语句的方法》开发教程,希望对您有用。
《PHP编程:Laravel5.* 打印出执行的sql语句的方法》要点: 本文介绍了Laravel5.* 打印出执行的sql语句的方法,分享给大家,具体如下: 打开appProvidersAppServiceProvider.PHP,在boot方法中添加如下内容PHP实例 5.2以下版本PHP实例 // 先引入DB use DB; // 或者直接使用 DB:: DB::listen(function($sql,$bindings,$time) { dump($sql); }); 5.2及以上版本PHP实例 use DB; // 或者直接使用 DB:: // 只能接受一个参数 QueryExecuted {#84 +sql: "select * from `posts` where `slug` = ? limit 1" +bindings: array:1 [] +time: 0.59 +connection: MySqlConnection {#85 } +connectionName: "mysql" } DB::listen(function($sql) { dump($sql); // echo $sql->sql; // dump($sql->bindings); }); // 如果要放入日志文件中 DB::listen( function ($sql) { // $sql is an object with the properties: // sql: The query // bindings: the sql query variables // time: The execution time for the query // connectionName: The name of the connection // To save the executed queries to file: // Process the sql and the bindings: 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); } ); 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家PHP.PHP实例 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |