MySQL更新日志

时间:2014-07-10 14:25:42

标签: php mysql changelog

我有一个运行良好的基本CRUD应用程序。我想在某些内容发生变化时向日志中添加一个条目 - 例如,某人添加了一条记录。

当有人更新现有记录时,我希望日志只显示更改的内容。例如,我有以下字段:

Name
Address
City
State
Zip

因此,如果地址发生变化(只有地址),我希望日志说:

'Address changed from YYY to ZZZ'

这是我写日志的当前语句。我需要改变什么?

INSERT log SET user_id = '$logid', username = '$logname', usertime = '$logdate', ipaddress = '$_SERVER[REMOTE_ADDR]', action = 'update', name = '$name', address = '$address', city = '$city', state = '$state', zip = '$zip'

2 个答案:

答案 0 :(得分:0)

语法是INSERT INTO your_table ...但是你正在描述一个更新: 更新your_table SET var1 ='新值'条件。 至于处理所做的更改,您可以使用IF,ELSEIF,ELSE在PHP中执行此操作。

答案 1 :(得分:0)

我会使用MYSQL TRIGGER来检测插入,更新或删除以及MYSQL UDF以写入某些外部日志文件。您需要编写其他触发器sql语句。您的sql语句只解决部分问题。研究MYSQL TRIGGERS和UDF来实现您的目标

MySQL触发器:http://www.w3resource.com/mysql/mysql-triggers.php#MST MySQL UDF:Mysql trigger write data to file