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

Laravel5.* 打印出执行的sql语句的方法,第1张

概述本篇文章主要介绍了Laravel5.* 打印执行的sql语句的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

5.2以下版本

5.2及以上版本

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 quer<a href="https://m.jb51.cc/tag/IE/" target="_blank" >IE</a>s to <a href="https://m.jb51.cc/tag/file/" target="_blank" >file</a>:// Process the <a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a> and the bindings:foreach ($<a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>->bindings as $i => $binding) {  if ($binding instanceof \DateTime) {    $<a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');  } else {    if (is_string($binding)) {      $<a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>->bindings[$i] = "'$binding'";    }  }}// Insert bindings into <a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a>$<a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a> = str_replace(array('%','?'),array('%%','<a href="https://www.jb51.cc/tag/s/" target="_blank" >%s</a>'),$<a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>-><a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>);$<a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a> = vsprintf($<a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a>,$<a href="https://www.jb51.cc/tag/sql/" target="_blank" >sql</a>->bindings);// Save the <a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a> to <a href="https://m.jb51.cc/tag/file/" target="_blank" >file</a>$log<a href="https://m.jb51.cc/tag/file/" target="_blank" >file</a> = fopen(  storage_path('logs' . DIRECTORY_SEP<a href="https://www.jb51.cc/tag/ara/" target="_blank" >ara</a>TOR . date('Y-m-d') . '_<a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a>.log'),'a+');fwrite($log<a href="https://m.jb51.cc/tag/file/" target="_blank" >file</a>,date('Y-m-d H:i:s') . ': ' . $<a href="https://m.jb51.cc/tag/query/" target="_blank" >query</a> . <a href="https://www.jb51.cc/tag/PHP/" target="_blank" >PHP</a>_E<a href="https://m.jb51.cc/tag/ol/" target="_blank" >ol</a>);fclose($log<a href="https://m.jb51.cc/tag/file/" target="_blank" >file</a>);

}
);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持内存溢出。

总结

以上是内存溢出为你收集整理的Laravel5.* 打印出执行的sql语句的方法全部内容,希望文章能够帮你解决Laravel5.* 打印出执行的sql语句的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存