mySQL数据库 - 每15分钟将某个列重置为“0”

时间:2016-04-07 12:36:11

标签: php mysql sql triggers

好的,如果我有一个登录数据库:

$XPath = '//Order[@*]'

尝试标记每个用户登录时尝试的次数。因此,用户1尝试登录4次,用户2尝试登录2次。

我想知道是否有一个方法*我可以添加到我的登录数据库,这会将所有用户尝试重置为0?所以在重置之后,表格看起来像这样:

id | email | pass | attempts
----------------------------
 1 |  ""   |  ""  |    4
 2 |  ""   |  ""  |    2

谢谢!

  • 编辑:从 SQL触发器方法

2 个答案:

答案 0 :(得分:0)

您可以按照here

所述使用EVENT

e.g。

CREATE EVENT clear_event
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 15 MINUTE
DO
  UPDATE myschema.the_table SET attempts = 0;

答案 1 :(得分:0)

这样做的目的是防止蛮力攻击吗? 如果是这样,那么有比你提出的更好的方法。

StackOverflow帖子提供了关于阻止它的方法的信息,并提到您可以提出一个“简单”问题,以确保用户不是机器人。

但是,如果您不想要这样的东西,并且您更多地设置记录某人输入错误详细信息的次数,那么在您的PHP登录脚本中,您可以复制如下内容。

if($UserInput == $Password){
//let the user in, they're correct
}
else{
//Relay Incorrect password text
    if($i > 4) //So 5 tries at an incorrect password
    {
        //Disable the button for x unix time
    }
    else
    {
        $i++; //Add one to the count
    }
}