【问题标题】:How to get access to the executed SQL queries in Zend Framework 3?如何访问 Zend Framework 3 中执行的 SQL 查询?
【发布时间】:2019-11-15 15:07:19
【问题描述】:

如何访问 Zend Framework 3 正在执行的所有 SQL 查询?

【问题讨论】:

    标签: sql zend-db zend-framework3


    【解决方案1】:

    在 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'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多