2011-12-16 54 views
1

如果存儲在db中的時間戳與當前時間之間的差值爲5分鐘或更長時間,我希望腳本刪除該行。PHP MySQL如果時間多於或超過5分鐘,則存儲時間

在DB已經連續2011/12/25 10:00
當前時間是2001年12月25日10:06

我希望它刪除數據庫行。

+2

這是非常廣泛的。你在哪個部分掙扎?你能顯示你現在需要查詢數據庫的代碼嗎? – 2011-12-16 00:49:00

+1

我認爲你所尋找的是某種類型的cron工作。 – 1ftw1 2011-12-16 00:57:07

+0

@Russell你真的想要仔細檢查你接受的答案。 – deceze 2011-12-16 01:33:40

回答

0

如果你在Linux中,你可以寫一個chron job執行一個php(或幾乎任何其他語言)的腳本來做到這一點。據我所知,一個數據庫不會有這種內置的功能,你需要編寫積極的功能。希望這可以幫助。

-3

試試這個,不壽測試:

$query = mysql_query("SELECT * FROM table"); 
$result = mysql_fetch_array($query); 

$id = $result['id']; 
$timestamp = strtotime($result['timestamp']); 
if($timestamp < time()-300){ 
mysql_query("DELETE FROM table WHERE id=".$id.""); 
} 
3

爲什麼cron的建議?您可以輕鬆地在每個頁面視圖上調用非常簡單的刪除語句。在成爲瓶頸的時刻(然後我們討論的是大量未改造的表格結構或非常繁忙的網站),查看查詢速度如此緩慢的原因可能會變得適當。運行解釋查詢,應用一些索引,等等。如果問題仍然存在,可能會讓遊客等待太多工作,然後是cron的時間。

在那之前,只需在每個頁面視圖執行以下查詢:

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now() 
2

上面的代碼稍有不妥。它應該是

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now() 

有一分鐘,它不應該在那裏。

相關問題