php - laravel 5.3 如何查詢上一次執行的SQL語句?
巴扎黑
巴扎黑 2017-04-11 09:21:40
0
3
170

請問laravel 5.3 如何查詢上一次執行的SQL語句?

巴扎黑
巴扎黑

全部回覆(3)
巴扎黑

建议安装一个debugbar包,也可以直接实现,我写过一篇文章,可以看一下laravel 5.* 打印最后一次执行的sql|一沙网

Ty80

添加一个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);
            }

        });
    }
}
PHPzhong

laravel debugbar
百度安装这个包 就能查看了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!