laravel、thinkphp 打印getLastSql

laravel打印最后执行sql语句

 \Illuminate\Support\Facades\DB::connection()->enableQueryLog();

//SQL语句

$queries = \Illuminate\Support\Facades\DB::getQueryLog();
$query = end($queries);

//输出到log        \Illuminate\Support\Facades\Log::info(vsprintf(str_ireplace('?','%s',$query['query']),array_map(function($n) {return is_numeric($n)?$n:'"' . addcslashes($n, '"') . '"';}, $query['bindings'])));

//直接打印
echo vsprintf(str_ireplace('?','%s',$query['query']),array_map(function($n) {return is_numeric($n)?$n:'"' . addcslashes($n, '"') . '"';}, $query['bindings']));

ThinkPHP 输出最后执行sql,可以在语句后面直接输出

User::find(1);
echo User::getLastSql();
// 3.2版本中可以使用简化的方法
echo $User->_sql();
//也可以使用fetchSql方法直接返回当前的查询SQL而不执行
echo User::fetchSql()->find(1);

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/534.html

(0)
adminadmin
上一篇 2024年12月31日 上午11:01
下一篇 2023年11月18日 下午10:43

相关推荐

发表回复

登录后才能评论
WeChat