【发布时间】:2012-03-15 05:47:31
【问题描述】:
我正在尝试获取一个 mysql PDO 语句来选择最后一天发生的所有失败登录。我的表有 4 列...id(只是自动递增以创建不同的条目)、ip(字符 15)、失败(布尔值)、第一次尝试(时间戳)。当我添加 firstattempt>=(CURDATE() - INTERVAL 3 DAY) 时,它开始返回 false。如果 WHERE 子句中没有它,它会返回行数。有什么想法吗?
function logip()
{
global $db;
global $user;
$ip = $_SERVER['REMOTE_ADDR'];
var_dump($ip);
$sql=$db->prepare('SELECT COUNT(failed) FROM logins WHERE firstattempt>=(CURDATE() - INTERVAL 3 DAY), ip=:ip');
$sql->execute(array(':ip'=>$ip));
$num=$sql->fetchColumn();
//$row=$sql->fetch();
var_dump($num);
$sql=$db->prepare('INSERT INTO logins (ip, failed, firstattempt) VALUES (:ip, :failed, :firstattempt)');
if ($user->authenticated())
$sql->execute(array(':ip'=>$ip, ':failed'=>false, ':firstattempt'=>time()));
else
$sql->execute(array(':ip'=>$ip, ':failed'=>true, ':firstattempt'=>time()));
}
【问题讨论】:
-
最好把php作为你的问题的标签。