0

特定のクエリが mysqlBinLog から MySQL データベースに発行されたことを確認できます。しかし、これらのクエリを実行した PHP ファイルを見つける方法はありますか?

私の問題は、アプリケーション内のどの php ファイルが特定の更新クエリを起動しているかを追跡できないことです。

アプリケーション全体でその特定の更新クエリを検索しましたが、一致するものが見つかりませんでした。プログラムでどこかで生成され、実行されます。

コードのフットプリントが大きすぎるため、どこにでもログ ステートメントを配置することは事実上不可能です。

4

2 に答える 2

3

データベース アクセス ライブラリ (PDO) をロガー クラスでラップし、バックトレースと共にクエリをログに記録できます。

class LoggerPDO extends PDO
{
    function query()
    {
        return $this->logger('query', func_get_args());
    }

    private function logger($method, $args)
    {
        // log query
        debug_print_backtrace();
        // push to parent
        return call_user_func_array(array($this, 'parent::' . $method), $args);
    }
}

prepare()やなど、ロギングが必要な他のメソッドも追加できますexecute()

関数を使用している場合はmysql_、頑張ってください:)

于 2012-05-21T07:27:46.070 に答える
0

更新クエリが発行された場所からログを配置し、これらのログ情報を取得できます

于 2012-05-21T07:26:42.143 に答える