Php Mysql触发器变量-查找更新用户

Php Mysql触发器变量-查找更新用户,php,mysql,triggers,Php,Mysql,Triggers,我有一个带有字段的表: 身份证 数据1 数据2 接下来,我想设置更新后写入日志表更改的触发器: CREATE TRIGGER `update_data` AFTER UPDATE on `data_table` FOR EACH ROW BEGIN IF (NEW.data1 != OLD.data1) THEN INSERT INTO data_tracking set old_value = OLD.data1, new_value = NEW.data1, field

我有一个带有字段的表:

  • 身份证
  • 数据1
  • 数据2
  • 接下来,我想设置更新后写入日志表更改的触发器:

    CREATE TRIGGER `update_data` AFTER UPDATE on `data_table`
    FOR EACH ROW
    BEGIN
       IF (NEW.data1 != OLD.data1) THEN
           INSERT INTO data_tracking set old_value = OLD.data1, new_value = NEW.data1, field = "data1";
       END IF;
       -- similar for data2
    END$$
    
    我还想在data_跟踪表中记录做出更改的用户,但是该用户不是触发触发器的原始更新的一部分。我想这是一种让触发器知道需要记录哪些用户的方法吗


    这是一个基于PHP的web服务,有多个注册用户,可以通过网站(我想添加到触发器的用户)对记录进行更改

    使用
    CURRENT_USER
    ,请参阅MySQL手册:

    因为您想使用只有PHP知道的用户名,如果此信息仅在PHP中可用,MySQL无法知道是哪个用户触发了更改。这意味着您至少必须在每个update语句中传递用户,或者将其作为列添加到需要此类触发器的所有表中,或者通过将用户名作为附加参数获取的存储过程执行所有更新。然后你可以去掉所有的触发器,因为你无论如何都会使用存储过程来进行日志记录和更新。

    当前用户将持有PHP(在我的情况下)用于连接数据库的值,我不想创建这么多mysql用户…同意,这是传递此用户信息的另一种方法,就像建立连接或其他“黑客”时设置变量一样?