2016-05-03 49 views
-1

我可以使用一些幫助,我想自動運行一個腳本,在48個工作小時後(不包括週末)從我的數據庫中刪除記錄 - 某種計時器if你會。如何自動運行php腳本並從數據庫中刪除記錄

嘗試使用phpmyadmin觸發器,但沒有做正是我想要的。

另外:在我的分貝我有一個listed_date列 - 存儲日期和時間加入的記錄,我也有存儲將來的日期(當記錄本應到期/刪除)

一列EXPIRY_DATE

任何想法??

+2

使用SQL Cron Job – Panda

+0

謝謝,生病了試試看。 –

回答

0

如果你想運行一個PHP腳本,創建一個PHP query

//connect to mysql database, then run a query with the following logic

DELETE FROM `table` WHERE `expiry_date` <= NOW(); 

這個腳本oculd在crontab被設置爲運行每隔N分鐘:

0 * * * * cd /script/directory; php script.php; > /dev/null 

這將在每小時運行一小時。

+0

非常感謝。 cronjob的執行現在可行,但sql上的邏輯在某種程度上讓人困惑:我只想刪除週末48小時(或更早)的記錄(我週日只通過執行腳本來繞過weeeknd部分) –

+0

很高興提供幫助。你的'expiry_date'列保存了一個相當於添加條目的日期時間,再加上48小時。 'MySQL'中的'now()'函數返回當前的日期時間。在查詢中,您將刪除具有小於或等於當前日期時間的「expiry_date」值的所有條目。 https://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_now 您可以通過將'listed_date'列與'NOW( ) - 間隔48小時,從而刪除早於48小時前的條目。這是清楚的嗎? –

+0

這幫了很多!再次感謝:-)管理做我想要的結合你的sugetions與這裏給出的解決方案http://stackoverflow.com/questions/336127/calculate-business-days –

相關問題