You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP/MySQL中如何自动化记录用户操作日志,无需逐个编写REQUEST判断?

通用化PHP操作日志记录方案疑问

背景与需求

我正在开发一款内部自研的PHP应用,拥有多名员工用户,他们可执行各类操作,包括添加、修改或删除员工账户、课程、学生、试题、测试等。我的目标是编写函数,将用户的所有操作记录到MySQL的logs表中。

现有实现方式

目前我通过逐个判断请求参数来处理业务逻辑,比如新增员工账户的代码:

if(isset($_REQUEST['newemployee'])){
    $db = new db();
    $insertrow = $db ->insertRow("INSERT INTO employees (firstname, lastname, email, role, color) VALUES (?, ?, ?, ?, ?)", array($_REQUEST['firstname'],$_REQUEST['lastname'],$_REQUEST['email'],$_REQUEST['role'],$_REQUEST['colorpicker1']));
}

对应的日志记录也需要为每个请求单独编写if语句,示例如下:

// 已有一张名为`logs`的表,以下实现较为粗糙但可满足需求
if(isset($_REQUEST['newemployee'])){
        $done_by = $_SESSION['loguser']['id']; // 通过此方式追踪用户ID
        $action = 'created new employee account, email: '.$_REQUEST['email'];
        $db = new db();
        $insertrow = $db ->insertRow("INSERT INTO logs(user_id, action) VALUES (?, ?)", array($done_by, $action));
}

期望的通用化方案

我希望尽可能将日志记录流程通用化、自动化,避免为每个可触发的请求参数编写大量重复的if语句。理想的逻辑大概是这样:

if (ANY REQUEST is triggered){
    # 告知触发的请求类型(例如'newemployee')
    # 在此将日志插入数据库,此时action字段无需太具体,我可以接受这一点。
}

但我无法直接实现这种通用的请求判断逻辑,想请教这种方案是否可行?

内容的提问来源于stack exchange,提问作者MMC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:40:58