MySQLクエリを実行するためのMySQLiクラスでPHP5を使用して、現在接続されているデータベースの新しいテーブルでMySQLi::queryを使用して処理された各クエリをどのようにログに記録できますか?
Javaのように、関数を拡張することは可能ですか?
トリガーをサポートするバージョンの mysql を使用している場合。トリガーを作成するだけで、不要なビジネス ロジックでコードを汚染する必要がなくなります。
http://dev.mysql.com/doc/refman/5.0/en/triggers.html
トリガーのサポートは、MySQL 5.0.2 以降に含まれています。そのため、アプリをデプロイするときに、テーブルを作成すると同時にトリガーを作成します。
ログのテーブルを定義する
create table querylog (
tm timestamp,
query varchar(4096));
クエリを実行すると、クエリ文字列がこのテーブルに記録されます
insert into querylog (tm, query)
values(now(), '$query_string')
これは、すべてのクエリまたは関数で明示的に行うことができます。my_query
代わりに、mysqli_query
または @E_p が示唆するように、トリガーで定義して呼び出します。