7

PDOクエリが実行されるたびに内部カウンターを追加するために、オブジェクトを何らかの方法で拡張することを具体的に検討しています。既存のクエリを変更したり、このように追加の関数を追加したりする必要がない方法でこれを行いたいと考えています。

私は特にクラスや PDO クラスに精通していませんが、これを行うことはできますか? これについてどうすればいいですか?

呼び出されるたびに、格納された変数を拡張queryおよびインクリメントすることを考えています。execute

4

2 に答える 2

7

拡張PDOは他のクラスと同じように行われます。これはあなたのニーズに合いますか?PDO他の唯一のコード変更は、最初の接続を行うときに、クラスではなくこのクラスをインスタンス化する必要があることです。

class PDOEx extends PDO
{
    private $queryCount = 0;

    public function query($query)
    {
    // Increment the counter.
        ++$this->queryCount;

    // Run the query.
        return parent::query($query);
    }

    public function exec($statement)
    {
    // Increment the counter.
        ++$this->queryCount;

    // Execute the statement.
        return parent::exec($statement);
    }

    public function GetCount()
    {
        return $this->queryCount;
    }
}
于 2012-10-12T01:26:25.753 に答える
0

実行するだけです:

SHOW PROFILES;

最大のQuery IDものはあなたが求めているものです。これにより、過去 15 回 (デフォルト) のクエリ実行時間に関する情報も得られます。

于 2013-05-18T17:38:43.227 に答える