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#これは、ファインダー関数に送信された最後のクエリのみを返し、関連付けクエリは含まれません

パラメータが設定された完全なステートメントを取得するには、独自の関数をロールし(php.netコメントを参照)、それをphp-activerecord / lib / Connection.php::query関数に挿入する必要があります。制作にはあまり良いアイデアではないでしょう。

于 2015-04-30T15:45:12.800 に答える