如何查看在php MySQl中执行的所有查询?

时间:2017-12-01 18:03:03

标签: php mysql laravel

我的系统使用php + MySQL,我不想逐个文件跟踪,按功能查找正在执行的所有查询。

是否有更简单的方法来查找正在执行的所有查询,例如laravel中的调试栏?

1 个答案:

答案 0 :(得分:0)

在正常的应用程序中,这将使用装饰器完成,您可以将数据库抽象(如PDO或MySQLi)包裹起来,然后使用此装饰器替换先前在DI容器配置中定义的依赖项。

但是由于您使用的是Laravel,因此可以选择为所有数据库活动添加侦听器 See the documentation

基本上,如果你想在调试栏中看到这些信息,代码最终会看起来像这样:

DB::listen(function ($query) {
    Debugbar::info($query);
});

使用这两个选项,您会遇到同样的问题 - 您只能看到自己访问过的在执行路径上调用的查询。

要获得完整的被调查查询列表,您必须设置"集成测试" (缺乏更好的名称),具有100%的代码覆盖率。然后,您可以使用上述方法之一,并收集有关实际执行的所有查询的日志。