【问题标题】:PHP - How do i delete data from database automatically after 24 hour of insertionPHP - 如何在插入 24 小时后自动从数据库中删除数据
【发布时间】:2017-02-11 21:07:33
【问题描述】:

我想在每 24 小时插入后从数据库中删除数据。

例如:今天添加了一个用户,他没有激活,24小时后该用户将被自动删除。

我打算在没有 cron 的情况下执行此操作,因为 cron 不在我的本地/离线服务器中。

我真的需要你的帮助。

【问题讨论】:

  • 您可以使用 php 执行此操作的唯一方法是在数据库行中具有最后登录的时间戳。如果用户在 24 小时后回来删除记录。 PHP只在网页加载时运行,不会在后台运行
  • MySQL 已经安排了事件(参见 dev.mysql.com/doc/refman/5.7/en/create-event.html),您也许可以使用这些 - 在数据库中记录日期并每天安排类似 DELETE FROM yourtable WHERE date=...

标签: php mysql database insert


【解决方案1】:

你可以简单地使用

DELETE FROM your_table 
WHERE your_date_col < DATE_SUB(NOW(), INTERVAL 1 DAY))

并使用 mysql 预定事件

可能是这样的

CREATE EVENT my_dayly_event
    ON SCHEDULE
      EVERY 1 DAY
    COMMENT 'delete old values.'
    DO
    DELETE FROM your_table 
    WHERE your_date_col < DATE_SUB(NOW(), INTERVAL 1 DAY))

无论如何,看看这个文档。 https://dev.mysql.com/doc/refman/5.7/en/create-event.html ... 可能有用

【讨论】:

  • 我不知道如何使用调度器事件请你帮我写一下吗?
  • 好的,兄弟,这意味着我必须等待 1 天才能看到结果。对吗?
  • 这是一个示例...您可以研究文档并尝试更适合您的方法..您可以更改频率(1 小时或 1 分钟)以进行调试或测试..
猜你喜欢
  • 2017-07-13
  • 1970-01-01
  • 2017-10-30
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多