PDO
クエリが実行されるたびに内部カウンターを追加するために、オブジェクトを何らかの方法で拡張することを具体的に検討しています。既存のクエリを変更したり、このように追加の関数を追加したりする必要がない方法でこれを行いたいと考えています。
私は特にクラスや PDO クラスに精通していませんが、これを行うことはできますか? これについてどうすればいいですか?
呼び出されるたびに、格納された変数を拡張query
およびインクリメントすることを考えています。execute
PDO
クエリが実行されるたびに内部カウンターを追加するために、オブジェクトを何らかの方法で拡張することを具体的に検討しています。既存のクエリを変更したり、このように追加の関数を追加したりする必要がない方法でこれを行いたいと考えています。
私は特にクラスや PDO クラスに精通していませんが、これを行うことはできますか? これについてどうすればいいですか?
呼び出されるたびに、格納された変数を拡張query
およびインクリメントすることを考えています。execute
拡張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;
}
}
実行するだけです:
SHOW PROFILES;
最大のQuery ID
ものはあなたが求めているものです。これにより、過去 15 回 (デフォルト) のクエリ実行時間に関する情報も得られます。