繁体   English   中英

使用Laravel / Lumen DB Facade转储SQL查询

[英]Dump sql queries with Laravel/Lumen DB facade

我正在使用Lumen(按时发布的最新版本),并使用DB:insert()方法运行一些数据库查询。

$insert = DB:insert('insert into sales (sale_number, sale_value, time) values (?,?,?)',[$sale_number, $sale_value, Carbon::now()]);

由于某些原因,插入无法正常工作,并且屏幕显示空白。

var_dump($ insert)返回false

我在App服务提供商中添加了一个侦听器:

<?php

namespace App\Providers;
use Illuminate\Support\Facades\DB;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        DB::listen(function($sql, $bindings, $time) {
            echo 'SQL: '.$sql;
            var_dump( $bindings);

        });
    }
}

然而,它呼应

SQL: insert into sales (sale_number, sale_value, time) values (?,?,?)
array();

DB::getQueryLog(); 也分别转储查询和绑定。

如何获得编译查询?

你不能

PDO没有给您这种选择。 所有框架和库都为此而苦苦挣扎。

如果您使用的是UNIX并在本地运行mysql,则可以运行:

tail -f /var/log/mysql/mysql.log

当查询在mysql上运行时,这将输出查询。

如果您未运行Unix,则可以使用

SELECT * FROM  mysql.general_log  LIMIT 10;

要输出最后10个查询,请在mysql上运行。 仍然无法通过PDO获得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM