我正在使用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();
也会单独转储查询和绑定。
如何获得编译查询?
答案 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 =(