我使用PHP MySQL制作了一个数据添加修改功能,关于修改功能。我需要获取每次数据修改了什么内容,以便存储为一个log数据,以备查看。
示例
有一个数据表:
id | 名称 | 编号 |
---|---|---|
1 | 小明 | 101 |
然后我通过update语录,修改了小明为小红,修改了101为102等数据。这时候我要做一个log记录,保存某某某时间 将小明改为小红。问题是,如何快捷有效的判断出修改内容。
新旧数据如果用一维数组表示,可以用PHP函数array_diff_assoc比较两个数组。用很多if判断是很笨的方法,另外也不建议交给数据库来做这种工作
$old = array('id'=>'1','name'=>'a','sort'=>'1');
$new = array('id'=>'1','name'=>'b','sort'=>'2');
$result1 = array_diff_assoc($new, $old);
$result2 = array_diff_assoc($old, $new);
print_r($result1); //Array ( [name] => b [sort] => 2 )
print_r($result2); //Array ( [name] => a [sort] => 1 )
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。