检测更新数据库中的行时用户更改的内容

时间:2011-09-15 10:23:33

标签: php mysql

我有一个设置,用户可以在其中添加新记录到数据库然后进行编辑。

我基本上是在尝试设置一个日志系统,无论何时任何用户进行更改,当您查看数据库中当前存在的一行时,它会将其名称记录在视图页面的底部(即您可以查看谁在哪个日期的哪个时间编辑了当前行。

试图找出一种方法来显示他们已经改变了什么,以及他们何时更新了它。基本上需要代码来检测已更改的内容,然后打印出列名。

更新代码如下:

$sql="UPDATE $tbl_name SET DATE='$DATE', JOB='$JOB', ADDRESS='$ADDRESS' WHERE id='$id'";

我该怎么做?

3 个答案:

答案 0 :(得分:3)

概念很简单:

  1. 获取要更新的行
  2. 将该行的值与新值进行比较
  3. 如果存在差异,请将其与当前日期一起存储在您的日志中
  4. 运行更新
  5. 完成!

答案 1 :(得分:1)

好吧,你可以使用触发器和日志表。 这是一个非常基本的概念,请查看一些文档here

答案 2 :(得分:0)

您可以使用触发器(http://dev.mysql.com/doc/refman/5.0/en/triggers.html)记录更改后的值。