如果已过期,则从数据库中删除记录

时间:2013-04-07 21:32:19

标签: php mysql sql mysqli

我正在尝试设置它,以便如果记录已过期,它将被删除,我知道我的连接很好,因为此代码有效

mysqli_query($resDB,"DELETE FROM downloads WHERE downloads='1'"); 

但我似乎无法弄清楚如何随着时间的推移做到这一点,是否可以使用少于登录的查询?这是我到目前为止所做的。

mysqli_query($resDB,"DELETE FROM downloads WHERE expires < time()"); 

2 个答案:

答案 0 :(得分:1)

使用UNIX_TIMESTAMP()。它返回当前的UTC时间。你的过期字段就是那个。 time()也就是这样。

WHERE expires < UNIX_TIMESTAMP()

答案 1 :(得分:0)

好的,首先你需要创建一个字段,(比如TimeStamp)虽然我更喜欢DateTime。 每当您在表“下载”中插入新行时 你必须给它一个失效日期。

您将使用以下内容进行操作:

INSERT INTO downloads (Download_ID, ExpiresOn) VALUES( 5, DATE_ADD(NOW(),interval +1 month) );

所以,每当你想删除过期的download_id时 你必须

DELETE FROM downloads WHERE ExpiresOn < NOW() LIMIT 1;

希望这有助于:)

对于这个问题,有不同类型的解决方案,你必须更好地解释你的问题和你想要实现的目标。 :)

欢呼声^^