如何访问Zend Framework3正在执行的所有SQL查询?
发布于 2019-11-15 23:07:20
在Zend Framework3中,您可以使用“分析”来跟踪SQL查询的性能。这也可用于访问已执行的SQL查询。
在数据库配置中,在某个适配器上设置profiler = true选项,如下所示:
<?php
return [
'db' => [
'adapters' => [
'adapter1' => [
'dsn' => 'mysql:dbname=dbname;host=127.0.0.1',
'username' => '',
'password' => '',
'profiler' => true,
],
],
],
];然后获取适配器(它是一个具有相应名称的服务)并获取驱动程序、分析器和配置文件。Profiles是一个包含所有sql语句的数组。
$adapter = $application->getServiceManager()->get('adapter1');
$profiles = $adapter->getDriver()->getProfiler()->getProfiles();每个概要文件都是一个具有关联关键字"sql“的数组,原始查询就是在这里存储的。
$firstSqlQuery = $profiles[0]['sql'];https://stackoverflow.com/questions/58879752
复制相似问题