如何使用触发器记录更新的变化?

时间:2019-06-11 07:49:02

标签: php mysql

我想在logs表的'users'表中记录更改(更新)。

我还没有尝试过,但是我考虑过运行第二个查询,每次我更新logs表中的内容时,都会在users表中插入数据。

这是一个可行的解决方案,但我必须运行查询以获取旧值,运行另一个查询以插入users更新,最后将旧值插入logs

这是我如何更新users上的数据:

$sql = "UPDATE users SET username = '$newUserName' WHERE username = '$userName'";
$res = $conn->query($sql);
if ($conn->query($sql) === true) {
    $_SESSION['username'] = $newUserName;
    echo "Username changed.";
} else {
    echo $conn->error;
}

我想获取users表中的旧值(已更新的行的主键,称为user_id),受影响的表和字段以及实际的值挤了。

因此,例如,我将test@1234.test作为主键从AliceBob的行中更新users.username,logs中的行将有{{1 }}作为test@1234.testuser_id作为表,users作为字段,username作为Alice

我该如何使用触发器?

0 个答案:

没有答案