大家好,我需要对这些情况的建议:
例如,我有一个免费的分类发布网站,用户可以在其中发布分类广告。该广告将在网站上列出最多 30 天,然后在第 31 天它会自动从数据库中删除以及图像在服务器上..问题是:
$db_ad_tbl('id','user_id','title','description',timestamp);
这样做的正确方法是什么?任何人都可以建议涵盖相同情况的教程/链接吗?
大家好,我需要对这些情况的建议:
例如,我有一个免费的分类发布网站,用户可以在其中发布分类广告。该广告将在网站上列出最多 30 天,然后在第 31 天它会自动从数据库中删除以及图像在服务器上..问题是:
$db_ad_tbl('id','user_id','title','description',timestamp);
这样做的正确方法是什么?任何人都可以建议涵盖相同情况的教程/链接吗?
另一种不需要 cron 的方法是使用 MySQL 事件。如果您能提出正确的查询,您可以将其设置为重复事件。phpMyAdmin 4.0.x 支持从界面处理事件。
正如 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] ),则可以将其删除。这当然是有风险的,因为每次尝试计数时都必须包含时间戳,并且如果没有从数据库中请求过期资源,则存在永远存储所有内容的风险。