因此,我已经在该主题上进行了大量搜索,但是我找不到答案。因此,基本上,我正在寻找一个小型网站,该网站将从HTML表单中提取信息,并将其发送到数据库,然后在两个小时后,它将自动删除自身。我对这是如何工作有一个基本理论,但我不知道该怎么做:我可以拉出当前时间和日期,再加上两个小时,然后将时间放到数据库。一旦时间到了expires列中的时间,数据就会从数据库中删除。抱歉,如果这是一个非常“笨拙”的问题,那么我对使用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
}
尽管乍一看似乎是个好主意,但为了确保此表上的内容始终准确,您必须每30秒甚至可能更频繁地运行一次。如果站点很忙,那可能会成为此表上其他事件的方式,如果站点不很忙,则大多数时候不必要地运行cron。
如果在将删除信息提供给用户之前添加删除代码,至少它仅在需要时才运行,并且还应确保在向用户提供数据时该表始终是准确的。