2012-11-29 57 views
1

我正在編碼密碼恢復腳本。當用戶想要恢復他的密碼時,會在數據庫中寫入一串50個隨機驗證碼,該驗證碼將用作$_GET進行驗證。過去的當前時間戳或日期時自動刪除記錄

該表稱爲recoveryvar(50)unique。接受鏈接後,該字段將被刪除。但是如果用戶不打算點擊鏈接呢?這必須從數據庫中刪除,因爲這個隨機的50字符串將被創建的機會會變得更大,並且數據庫將獲得不通常的數據。

我一直在四處尋找,看到這一點:

INSERT INTO what_ever ('', '', now(), DATE_ADD(NOW(), INTERVAL 3 DAY));

這樣,我進入的截止日期,但MYSQL怎麼可以刪除這個自己當時間是正確的?這甚至有可能嗎?

如果不是,我最好的選擇是什麼?

編輯:

當然了3天實在是太多了。我在想15分鐘。

+1

你可以用時間戳巧妙地散列那個鍵。 – yoda

+2

查找MySQL事件調度程序,您可以設置任務以預定義的時間間隔執行,例如從表中刪除過時的記錄。 –

回答

3

您可以編寫一個觸發器,用於在插入新行時刪除舊數據。

如果您不知道如何編寫觸發器,請使用像HeidiSQL這樣的高級MySQL客戶端,它可以幫助您使用某些GUI。

+2

爲什麼在我們在MySQL中有事件時觸發? –

+0

我不知道事件調度器,似乎是一個非常有趣的功能。 – Vince

2

您可以將插入到數據庫的觸發器刪除超過一定數量的任何記錄。

相關問題