【问题标题】:phpactiverecord - display generated query?phpactiverecord - 显示生成的查询?
【发布时间】:2023-03-12 12:29:01
【问题描述】:

使用http://www.phpactiverecord.org/的phpactiverecord,除了查看数据库服务器的查询日志,还有什么办法可以查看生成的SQL查询进行调试?

【问题讨论】:

    标签: php phpactiverecord


    【解决方案1】:

    获取 SQL 语句的几种不同方法不带参数

    1. static::table()->conn->last_query #将最后一个查询返回到连接
    2. static::connection()->last_query#和第一个一样
    3. static::table()->last_sql #这只会返回发送给查找函数的最后一个查询,不会包括关联查询

    要获得带有参数集的完整语句,您需要扮演自己的函数 (see php.net comment) 并将其插入到 php-activerecord/lib/Connection.php::query 函数中。对于生产来说可能不是一个好主意。

    【讨论】:

      【解决方案2】:

      在您的模型中:

      echo self::connection()->last_query;
      

      在你的模型之外:

      YourModelName::connection()->last_query;
      

      【讨论】:

        【解决方案3】:

        在扩展 ActiveRecord\Model 的类中,最后一个查询在 ClassName::connection()->last_query 中。例如

        class Todo extends ActiveRecord\Model {
            public static function test() {
                Todo::all();
                var_dump(Todo::connection()->last_query);       
            }
        }
        

        【讨论】:

          猜你喜欢
          • 2018-08-05
          • 1970-01-01
          • 2019-02-14
          • 1970-01-01
          • 1970-01-01
          • 2011-10-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多