自动删除MySQL数据库中的消息

时间:2010-11-25 09:15:53

标签: php javascript mysql

您好我有一个MySQL数据库表,用户输入消息(通过表单),我想知道是否有一种方法可以在1分钟过后自动删除消息? 我正在使用的代码是PHP。 非常非常感谢任何回复:)

8 个答案:

答案 0 :(得分:4)

嗯,您可以在执行任何其他操作之前始终运行删除查询。例如,每当您检查邮件时,请先删除超过1分钟的所有邮件。

我认为我宁愿不要获得超过1分钟的消息。它可以很好用日志:)

答案 1 :(得分:4)

我可以想出两种方法来实现这一目标。

  1. 制作一个脚本,每隔X分钟运行一次,并在数据库中进行任何更改。
  2. 在脚本中插入新记录之前或之后删除所有过期记录。

答案 2 :(得分:2)

将消息插入数据库时​​,存储time_created时间戳。然后在PHP中,只显示时间戳在当前时间1分钟内的消息。

答案 3 :(得分:1)

使用cron作业清除旧邮件。

答案 4 :(得分:1)

  • 你可以让cron脚本每分钟运行并删除所有旧消息
  • 或在表格中创建valid_until列,并将其设置为NOW()+ 60 - 然后只显示具有valid_until> = NOW()的行。

答案 5 :(得分:1)

建立一个cron服务是我脑海中浮现的第一件事,尽管这可能是一个不必要的复杂问题。

您可以在sleep 1分钟后执行插入的同一脚本中调用delete。

 sleep ($seconds);
 // call the delete query

另一种方法是将延迟逻辑传递给将为您执行删除的Mysql trigger

SELECT SLEEP(<seconds>);

答案 6 :(得分:1)

解决方案1:用户cron作业,每分钟运行一次以检查和删除

解决方案2:使用ajax做那项工作

我个人建议第一个解决方案,但如果你没有SSH访问服务器,你必须选择第二个:D

答案 7 :(得分:0)

感谢所有的回复/帮助:) Svish的第一个建议'你可以在做其他任何事情之前总是运行删除查询。例如,每当您检查邮件时,请先删除超过1分钟的所有邮件。会工作......如此明显不知道为什么我没有想到那个doh!再次感谢every1。