【发布时间】:2019-11-15 15:07:19
【问题描述】:
如何访问 Zend Framework 3 正在执行的所有 SQL 查询?
【问题讨论】:
标签: sql zend-db zend-framework3
如何访问 Zend Framework 3 正在执行的所有 SQL 查询?
【问题讨论】:
标签: sql zend-db zend-framework3
在 Zend Framework 3 中,您可以使用“分析”来跟踪 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'];
【讨论】: