本文介绍了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语句的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)