前提
我使用PHP MySQL制作了一个数据添加修改功能,关于修改功能。我需要获取每次数据修改了什么内容,以便存储为一个log数据,以备查看。
示例
有一个数据表,内容分别是
id,名称,编号,等…
有一条数据内容是
1,小明,101,等…
然后我通过update语录,修改了小明为小红,修改了101为102等数据。
这时候我要做一个log记录,保存某某某时间 将小明改为小红,等
问题
这时候问题来了。如何快捷有效的判断出修改内容。
我的做法
因为编辑数据前我载入了一次数据到网页中,然后网页提交的时候,我就判断提交的内容和刚载入的数据是否相同,不相同表示这里修改过了。
我认为的弊端
因为我的数据很多很多不只有id 名称这几个,所以判断起来特别麻烦,很多if,比如if name == newname 之类的判断语录。
需求
有没有更高效,代码更精炼的方式实现?
新旧数据如果用一维数组表示,可以用PHP函数array_diff_assoc比较两个数组。
用很多if判断是很笨的方法,另外也不建议交给数据库来做这种工作