0

使用 PHP5,以及用于执行 MySQL 查询的 MySQLi 类,如何将使用 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 回答