登录脚本,TIMEDIFF如何工作?

时间:2011-03-25 00:36:48

标签: php sql datetime time

我正在创建一个登录脚本。在这个脚本中,我想限制用户登录尝试,但只限制一个小时。一小时后,他们可以再试几次,然后再等一小时。在我的数据库中,我有ID,IP地址和DateTime字段。

我有谷歌,并没有找到解决方案。但是,通过搜索TIMEDIFF,有很多信息。从那以后,我在下面创建了查询和脚本。问题是,它不起作用。你能帮我把它搞定吗?

$query = "SELECT * FROM `log` WHERE `ip` = '".$ip."' AND TIMEDIFF('".date('Y-m-d H:i:s')."',`datetime`) > '24:00:00'";
$result = mysql_query($query);
$rows   = mysql_num_rows($result);

if($rows >= $this->maxAttempts)
{
    ...
}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

请考虑使用简单的数学和INTERVAL语法:

SELECT *
  FROM log
 WHERE ip = ?
   AND (datetime + INTERVAL 1 HOUR) > NOW()