我决定在我的数据库中创建一个新表,用于审核在我的数据库上执行的所有操作。
我的表“活动”相当简单,包含以下列:
- activity_id - 主键
- user_id - 用户的外键
- action - 正在执行的查询类型(SELECT、UPDATE、DELETE)
- 表 - 受影响表的名称
- 行 - 受影响行的名称
我现在正在做的是在执行查询时,然后在它之后有另一个查询,它将信息插入到我的“活动”表中。
代码:
//query
$db->query("DELETE FROM foo WHERE id = '$foo->id'");
//activity record query
$db->query("INSERT INTO acitivity ( user_id, action, table, row ) VALUES ('$user->id', 'Deleted' , '$foo->id', 'foo')");
如您所见,我必须为每个查询手动执行此操作,并且我的系统中有超过 100 个查询,我真的不想输入单个查询来记录发生的情况。
我想知道 MySQL 中是否有任何功能可以告诉我已经执行了哪些操作,或者 PHP 中是否有任何库或技术可以帮助我?
还是我注定要在我的系统中写出 100 个单独的查询?
谢谢