微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 将数据添加到数据库,在一段时间后自动删除?

所以,我在这主题上做了很多谷歌搜索,我找不到答案.所以,基本上,我正在寻找一个小网站,它将从HTML表单中提取信息,将其发送到数据库,然后两小时后,它将自动删除自己.我有一个关于它如何工作的基本理论,但我无法弄清楚如何做到这一点:我可以拉出当前的时间和日期,再增加两个小时,然后将时间放入“过期”栏中.数据库.一旦时间是expires列中的时间,数据将从数据库删除.很抱歉,如果这是一个非常“noobish”的问题,我对使用PHP数据库仍然有点新意.

无论如何,任何帮助将不胜感激!谢谢!

解决方法:

您可以向表中添加一个新的时间戳列,它将自动添加创建行的时间戳,如下所示

CREATE TABLE t1 (
   #your existing columns defined as before + this new column
   ts_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

现在,每次在此表上创建一行时,MysqL都会在创建时完成所有记录工作.

假设您可能无法在主机上创建cron作业,则可以在现有站点代码中最明显的位置添加删除代码以进行删除.

// remove old stale data
$sql = "DELETE FROM user
        WHERE ts_created < DATE_ADD(Now(),INTERVAL -2 HOUR)";

if ( ! $MysqLi->query($sql) ) {
    // log $MysqLi->error somewhere
}

虽然cron工作一见钟情似乎是一个好主意,为了确保在这个桌子上的东西总是准确的,你必须每隔30秒或甚至更频繁地运行它.这会阻碍此表上的其他活动,如果站点繁忙可能会出现问题,如果它不忙,您将在大多数时间不必要地运行cron.

如果您在向用户提供此信息之前添加删除代码至少只会在需要时运行,并且您还要确保在向用户显示数据时表始终准确.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐