首页 > 编程 > PHP > 正文

关于Laravel5.打印出执行的sql语句的方法

2020-03-22 17:52:08
字体:
来源:转载
供稿:网友
本篇文章主要介绍了Laravel5.* 打印出执行的sql语句的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文介绍了Laravel5.* 打印出执行的sql语句的方法,分享给大家,具体如下:

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

5.2以下版本

// 先引入DB use DB;// 或者直接使用 /DB:: DB::listen(function($sql, $bindings, $time) { dump($sql); });

5.2及以上版本

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-  // 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 ), fwrite($logFile, date( Y-m-d H:i:s ) . : . $query . PHP_EOL); fclose($logFile););

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

通过 Laravel “规范” 的开发短信验证码发送功能

Laravel5框架中向视图传送array的学习

Laravel 5框架的模型和控制器以及视图基础流程的学习

以上就是关于Laravel5.打印出执行的sql语句的方法的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表