使用Laravel / Lumen数据库外观转储SQL查询

时间:2015-11-13 06:57:09

标签: php mysql laravel laravel-5.1 lumen

我正在使用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();也会单独转储查询和绑定。

如何获得编译查询?

1 个答案:

答案 0 :(得分:0)

你不能。

PDO不会为您提供该选项。所有框架和图书馆都在努力解决这个问题。

如果您使用的是unix并且本地运行了mysql,则可以运行:

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

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

如果您没有运行unix,可以使用

SELECT * FROM  mysql.general_log  LIMIT 10;

输出在mysql上运行的最后10个查询。仍然无法通过PDO.Sorry =(