2011-12-11 62 views
0

我在我的數據庫中有一個名爲log_events的表格。在這張表中有一列叫做tags。如果該列中的值爲「debug」,並且其放入數據庫的日期超過30天,則應刪除該條目。我將通過cron運行腳本。請問如何使用PHP來完成這些任何想法? 感謝您的任何幫助,提前。使用cron刪除舊的數據庫行?

+0

你有什麼這麼遠嗎?你以前在PHP中編寫過一個MySQL驅動的應用程序嗎? –

+0

日期格式如何? –

+0

您能否更具體地指出您在PHP代碼中遇到問題,運行cron或SQL查詢? – greenLizard

回答

0

的SQL查詢應該是這個樣子

DELETE * FROM tbl_name WHERE column_name = 'debug' and created_at < NOW() - INTERVAL 30 DAYS 
1

您可以通過cron運行PHP腳本或者您也可以用一個簡單的bash腳本也能達到自己的目標:

#!/bin/bash 
mysql -u user -pyourpassword dbname<<EOFMYSQL 
DELETE FROM table WHERE tags = 'debug' AND date < DATE_SUB(NOW(), INTERVAL 30 DAYS); 
EOFMYSQL 

,那麼你可以調用腳本在crontab事件。

+0

NOW函數返回這種格式'2007-12-15 23:50:26' –

+0

@LawrenceCherone:你完全錯了。首先,它取決於調用NOW()的上下文(請參見[docs](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html# function_now))。其次,您可以安全地將'DATE','DATETIME'或'TIMESTAMP'類型的值與'NOW()'進行比較。 – Tadeck

+0

嗨,它是如何通過PHP完成的,你知道嗎? –