我在一个访问者可以创建帐户的网站上工作,为此,他们必须在过程结束时确认他们的电子邮件地址。
在创建帐户之前,输入的值(例如电子邮件、通行证等)会临时保存在一个特殊的表中。这意味着访问者有一个小时的时间打开他们的电子邮件并单击链接,否则该行将被删除,以防止机器人和邪恶或只是过度懒惰的人的“垃圾”。
我的想法是让用户清理混乱,这就是如何:当用户单击发送给他们的链接时,表中具有临时存储值的行被移动到成员的实际表中,另一个函数将清理向上“过时”的行,即超过一小时前插入的行。
这是我当前的代码:
$stmt3 = $dbc->prepare('DELETE FROM temp_storage WHERE time() - time > 3600');
$stmt3->execute();
(时间是存储插入行的时间的列)
但是,此代码显然不起作用。我知道我可以用 SELECT FROM temp_storage 做一个解决方法,然后检查该行是否插入太久,但我想,为什么不可能这样做呢?
现在我的问题是,是这样,还是我做错了?