打印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里可以看到执行的语句!
有话要说