gpt4 book ai didi

php - 在 mysql db 和 PHP 中 x 分钟后删除整行

转载 作者:可可西里 更新时间:2023-11-01 07:35:54 27 4
gpt4 key购买 nike

我正在尝试设置一个 sql 数据库,用户必须在其中确认他们的电子邮件地址。我想知道是否有一种方法可以自动删除 sql 数据库中尝试注册(提交他们的信息)但在 x 分钟后未确认其电子邮件地址的用户。

我编写的脚本将他们的信息直接插入数据库,然后在用户确认后将数据库上的列更新为“ACTIVE”,所以我不会在他们激活后插入数据,但在使用之前“NON_ACTIVE”状态。然后,当他们确认他们的电子邮件地址时,该状态将变为“事件”。

因此,如果用户提交了他们的信息,但未能确认他们的电子邮件地址,他们的详细信息仍在数据库中。我需要一些东西,可以在他们提交信息的 x 分钟后自动删除状态为“NON_ACTIVE”的行。我在数据库中还有另一列,其中包含他们的确切提交时间和日期。

有什么想法吗?

最佳答案

SQL 将是 DELETE FROM users WHERE (now() - mailsent) > (120*60) AND state = "NON_ACTIVE",其中 users 是表name、mailsent 邮件发送的时间戳和 120 您想要的超时分钟数。

您可以在 linux 系统上通过 cronjob 运行此命令,使用 cron -e someUser 并输入以下行

* * * * * mysql myDatabase < 'DELETE FROM users WHERE (now() - mailsent) > (120*60) AND state = "NON_ACTIVE"'

这将每分钟运行一次命令。请注意,您的 someUser 必须能够在没有密码的情况下访问 mysql 数据库,例如通过将密码输入 $HOME/.my.cnf

关于php - 在 mysql db 和 PHP 中 x 分钟后删除整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216279/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com