0

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

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

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

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

2 回答 2

1

使用UNIX_TIMESTAMP(). 它返回当前的 UTC 时间。您的 expires 字段就是这样。time()也是这样。

WHERE expires < UNIX_TIMESTAMP()
于 2013-04-07T21:37:02.003 回答
0

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

您将通过以下方式执行此操作:

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

因此,每当您想删除过期的 download_id 时,您都必须

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

希望这可以帮助 :)

当然,这个问题有不同类型的解决方案,您必须更好地解释您的问题以及您想要实现的目标。:)

干杯^^

于 2013-04-08T00:30:54.667 回答