打開app\Providers\AppServiceProvider.PHP,在boot方法中添加如下內容
public function boot()
{
//sql調試
$sql_debug = config('database.sql_debug');
if ($sql_debug) {
DB::listen(function ($sql) {
foreach ($sql->bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
} else {
if (is_string($binding)) {
$sql->bindings[$i] = "'$binding'";
}
}
}
$query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);
$query = vsprintf($query, $sql->bindings);
print_r($query);
echo '<br />';
});
}
}
在app/config/database.php 添加
'sql_debug' => 0, //為1輸出所有執行的sql語句
或者在app/helper.php函數添加
function getLastSql() {
DB::listen(function ($sql) {
foreach ($sql->bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
} else {
if (is_string($binding)) {
$sql->bindings[$i] = "'$binding'";
}
}
}
$query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql);
$query = vsprintf($query, $sql->bindings);
print_r($query);
echo '<br />';
});
}
在數據庫操作語句之前調用即可打印
