請問laravel 5.3 如何查詢上一次執(zhí)行的SQL語句?
建議安裝一個debugbar包,也可以直接實現(xiàn),我寫過一篇文章,可以看一下laravel 5.* 打印最后一次執(zhí)行的sql|一沙網(wǎng)
添加一個ServiceProvider,打印一下日志就可以
<?php
namespace App\Providers;
use DB;
use Illuminate\Database\Events\QueryExecuted;
use Illuminate\Support\ServiceProvider;
use Log;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
/**
* @param $needle
* @param $replace
* @param $haystack
* @return mixed
*/
private function str_replace_once($needle, $replace, $haystack)
{
$pos = strpos($haystack, $needle);
if ($pos === false) {
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
public function boot()
{
DB::listen(function (QueryExecuted $query) {
if ($query->bindings) {
$sql = $query->sql;
foreach ($query->bindings as $val) {
if (is_string($val)) {
$val = "\"" . strval($val) . "\"";
}
$sql = $this->str_replace_once("?", $val, $sql);
}
Log::debug($sql, $query->bindings);
} else {
Log::debug($query->sql, $query->bindings);
}
});
}
}
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號