0

MySQLクエリを実行するためのMySQLiクラスでPHP5を使用して、現在接続されているデータベースの新しいテーブルでMySQLi::queryを使用して処理された各クエリをどのようにログに記録できますか?

Javaのように、関数を拡張することは可能ですか?

4

2 に答える 2

1

トリガーをサポートするバージョンの mysql を使用している場合。トリガーを作成するだけで、不要なビジネス ロジックでコードを汚染する必要がなくなります。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

トリガーのサポートは、MySQL 5.0.2 以降に含まれています。そのため、アプリをデプロイするときに、テーブルを作成すると同時にトリガーを作成します。

于 2012-12-13T21:18:32.820 に答える
0

ログのテーブルを定義する

create table querylog (
tm timestamp,
query varchar(4096));

クエリを実行すると、クエリ文字列がこのテーブルに記録されます

insert into querylog (tm, query)
values(now(), '$query_string')

これは、すべてのクエリまたは関数で明示的に行うことができます。my_query代わりに、mysqli_queryまたは @E_p が示唆するように、トリガーで定義して呼び出します。

于 2012-12-13T21:28:02.117 に答える