Frage

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?

War es hilfreich?

Lösung 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.

Andere Tipps

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);       
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top