문제

Using phpactiverecord from http://www.phpactiverecord.org/, is there any way to see the generated SQL query for debugging, other than viewing the database server's query log?

도움이 되었습니까?

해결책 2

A couple of different ways to get the SQL statement without the parameters:

  1. static::table()->conn->last_query #returns last query to the connection
  2. static::connection()->last_query #same as the first
  3. static::table()->last_sql #this will only return the last query sent to the finder functions and will not include association queries

To get the full statement with parameters set, you'll need to role your own function (see php.net comment) and insert it into the php-activerecord/lib/Connection.php::query function. Likely not a great idea for production.

다른 팁

Within your Model:

echo self::connection()->last_query;

Outside your Model:

YourModelName::connection()->last_query;

In a class extending ActiveRecord\Model, the last query is in ClassName::connection()->last_query. e.g.

class Todo extends ActiveRecord\Model {
    public static function test() {
        Todo::all();
        var_dump(Todo::connection()->last_query);       
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top