大家好,我需要有这些情况的建议:
例如,我有一个免费的分类发布网站,用户可以在其中发布分类广告.. 该广告将在网站上列出最多30天,然后在第31天它将自动删除数据库以及服务器上的图像..问题是:
$db_ad_tbl('id','user_id','title','description',timestamp);
这样做的正确方法是什么? 任何人都可以建议涵盖相同情况的教程/链接吗?
答案 0 :(得分:2)
另一种不需要cron的方法是使用MySQL事件。如果您能够提出正确的查询,则可以将其设置为重复发生的事件。 phpMyAdmin 4.0.x支持从界面处理事件。
答案 1 :(得分:1)
正如Barmar所说,你应该为这项任务添加一个cronjob。您可以编写一个简单的PHP脚本,然后将其添加到您的crontab中,例如:
1 0 * * * php -f /path/to/file/clean.php
这意味着php文件将每天午夜执行。
只是几点说明:
大多数托管平台允许crontab编辑并使用他们运行Web服务器的同一用户运行它们,因此它应该不是问题。
实际上没有其他好的解决方案可以创建cron作业。这当然是每次从数据库中获取数据时都不检查时间戳。如果它比到期数据大(DELETE FROM my_table WHERE timestamp> [Expiry Timestamp]),则可以删除它。 。这当然是有风险的,因为每次尝试计数时都必须包含时间戳,如果从数据库中没有请求过期资源,则可能会永远存储所有内容。