php - laravel 5.3 如何查詢上一次執行的SQL語句?
巴扎黑
巴扎黑 2017-04-11 09:21:40
[PHP讨论组]

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

巴扎黑
巴扎黑

全部回复(3)
巴扎黑

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

PHP中文网

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

        });
    }
}
PHPz

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号