Laravel5.6 如何打印 SQL?insert/update/select 打印方法总结
方法一 :
$sql = DB::table('my_table')->select()->tosql();
此方法支持 select 语句
方法二 :
DB::connection()->enableQueryLog();
DB::table('my_table')->insert($data);
$logs = DB::getQueryLog();
dd($logs);
此方法支持 select 语句
方法三 :
// 在需要打印SQL的语句前添加监听事件。
DB::listen(function($query) {
$bindings = $query->bindings;
$sql = $query->sql;
foreach ($bindings as $replace){
$value = is_numeric($replace) ? $replace : "'".$replace."'";
$sql = preg_replace('/\?/', $value, $sql, 1);
}
dd($sql);
});
// 要打印SQL的语句
$res = DB::table('my_table')->insert($data);
此方法支持 insert, update, delete, select 等。
吐槽:Laravel 打印个SQL也太麻烦了,不明白为什么这么设计,如果各位有更好的方法欢迎指点。
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
推荐文章: