我正在尝试设置一个用户必须确认其电子邮件地址的sql db.我想知道是否有办法自动删除sql db中试图注册(提交他们的信息)但在x分钟后没有确认他们的电子邮件地址的用户.
我编写的脚本将其信息直接插入到数据库中,然后在用户确认后将数据库上的列更新为“ACTIVE”,因此我不会在数据激活后插入数据,但之前状态为“不活跃”.然后当他们确认他们的电子邮件地址时,该状态变为“活动”.
因此,如果用户提交了他们的信息,但未能确认他们的电子邮件地址,他们的详细信息仍然在数据库中.我需要一些东西,它会在x分钟后自动删除状态为“NON_ACTIVE”的行,直到他们提交信息为止.我在DB中有另一个列,其中包含确切的提交时间和日期.
有任何想法吗?
解决方法:
我会写一个类似于@Lars的声明:
DELETE
FROM users
WHERE (mailsent < NOW() - INTERVAL @x MINUTE)
AND (state = 'NON_ACTIVE')
但是你不需要有一个cron作业或触发器.只需将其放在用户访问的一个PHP页面中(可能是登录或注册页面?).它甚至可能被设置为不是每次运行,而是说,如果您不介意某些记录在几秒或几分钟之后被删除,则每一次登录一次.
标签:php,mysql 来源: https://codeday.me/bug/20190630/1337481.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。