我正在使用Lumen(最新版本为准时),并使用DB:insert()
方法运行一些数据库查询。
$insert = DB:insert('insert into sales (sale_number, sale_value, time) values (?,?,?)',[$sale_number, $sale_value, Carbon::now()]);
由于某种原因,插件无法工作,屏幕显示为空白。
var_dump($insert)返回错误
我在应用程序服务提供商中添加了一个监听器:
<?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;
输出在mysql上运行的最后10个查询。仍然无法通过PDO获得。对不起=(