laravel打印sql语句

打印sql语句,直接在你执行SQL语句后输出


方法一:


复制代码
$queries = DB::getQueryLog();


 $a = end($queries);


 $tmp = str_replace('?', '"'.'%s'.'"', $a["query"]);


 echo vsprintf($tmp, $a['bindings']);


 exit;
复制代码
方法二:  可以把下面代码放在查询语句前:


1
2
3
4
5
6
7
\DB::listen(function($sql, $bindings, $time) {
     foreach ($bindings as $replace){
         $value = is_numeric($replace) ? $replace : "'".$replace."'";
         $sql = preg_replace('/\?/', $value, $sql, 1);
     }
     dd($sql);
 })
 方法三:


下载 clockwork 扩展,这个扩展可以在很多框架里调试,比如laravel,lumen,CI等等,很是好用,


GitHub地址:https://github.com/itsgoingd/clockwork


中文地址: http://laravelacademy.org/post/3746.html
安装完以后,直接在firebug里可以看到执行的语句!

有话要说