我试图弄清楚如何获取正在执行的原始SQL查询,包括其中的绑定数据.这是我得到的:
\DB::connection()->enableQueryLog();
$query = \DB::getQueryLog();
$lastQuery = end($query);
以下是结果:
array(3) {
["query"]=>
string(57) "select * from `table_1` where `field_1` = ? limit 1"
["bindings"]=>
array(1) {
[0]=>
string(34) "xyz"
}
}
那么如何获得像这样的完整SQL查询的转储(旧的老式方式)?
select * from `table_1` where `field_1` = 'xyz' limit 1
谢谢
解决方法:
\Event::listen('Illuminate\Database\Events\QueryExecuted', function ($query) {
Log::info( json_encode($query->sql) );
Log::info( json_encode($query->bindings) );
Log::info( json_encode($query->time) );
});