我想在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
作为主键从Alice
到Bob
的行中更新users.username,logs
中的行将有{{1 }}作为test@1234.test
,user_id
作为表,users
作为字段,username
作为Alice
。
我该如何使用触发器?