记录在数据库上执行哪些活动的方法? -MySQL / PHP

我决定在我的数据库中创建一个新表,用于审计对我的数据库执行的所有操作.

我的表“活动”非常简单,包含以下列:

> activity_id – 主键
> user_id – 用户的外键
> action – 正在执行的查询类型(SELECT,UPDATE,DELETE)
> table – 受影响的表的名称
> row – 受影响行的名称

我现在正在做的是当执行查询时,我在其后面有另一个查询,它将信息插入到我的“活动”表中.

码:

//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个单独的查询

谢谢

解决方法:

为表创建ON INSERT,ON_UPDATE和ON_DELETE触发器,用于写入审计活动表的所有更改的详细信息

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...