2011-06-05 65 views
0

我遇到了一個小問題,我需要生成一個報告,重點關注數據庫中某些字段的更改。我想通做的,是這樣的更新字段上的PHP/MYSQL動作

「如果有更新,插入今天的獨立領域日期」

這樣一來,當我生成的報告,我可以確認哪些條目已通過檢查修改日期。

問題是,我不知道該如何使用PHP /笨做到這一點

感謝您的提示!

回答

3

你可以一個時間戳字段添加到您的表結構

your_field timestamp default current_timestamp on update current_timestamp 

看一看的手冊可用的語法

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

編輯。 如果只有在特定字段發生更改時才需要更新時間,則需要觸發器。

create table test (
id int not null auto_increment primary key, 
field1 int, 
field2 int, 
field3 int, 
last_update datetime) 
engine = myisam; 


delimiter // 
drop trigger if exists update_time // 
create trigger update_time before update on test 
for each row begin 
    if new.field2 <> old.field2 or new.field3 <> old.field3 then 
     set new.last_update = now(); 
    end if; 
end // 
delimiter ; 

在我的示例中last_update字段只會在field2或field3發生變化時更新爲當前時間。

+0

所以我如果正確理解你的代碼,PHP會知道new.field2和old.field2是什麼,並比較兩者,如果不相等,更新時間? – JonYork 2011-06-05 19:22:43

+0

Php甚至沒有涉及我的答案。這只是一個mysql觸發器,其中old是已存儲的值,new是新的值。如果他們不同的時間字段被更新。 – 2011-06-05 19:28:10

+0

我的表格已經制作好了,我已經有了500個條目。我如何添加分隔符代碼? – JonYork 2011-06-05 20:12:07