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.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...