6

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

4

3 回答 3

14

在您的模型中:

echo self::connection()->last_query;

在您的模型之外:

YourModelName::connection()->last_query;
于 2013-08-28T06:15:20.260 回答
3

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

class Todo extends ActiveRecord\Model {
    public static function test() {
        Todo::all();
        var_dump(Todo::connection()->last_query);       
    }
}
于 2013-04-02T08:26:45.167 回答
3

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

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

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

于 2015-04-30T15:45:12.800 回答