【发布时间】:2011-07-20 14:26:27
【问题描述】:
我的查询有问题。
数据库中的字段 (userid, code, timestamp)
我想在此代码中验证是否存在用户 ID 和相应的代码,但插入不到一天,否则显示消息“链接已过期”
没有这行TIMESTAMPDIFF(DAY, CURTIME(), timestamp) < 1"),我的代码运行良好。
目前没有任何带有时间戳条件的返回
"select userid, code from password_reset where userid=? and code=? and TIMESTAMPDIFF(DAY, CURTIME(), timestamp) < 1"
这段代码有问题吗?基本上我的想法是:如果时间戳超过一天,则向用户返回错误。
我的脚本(问题只在于查询中的时间戳条件)
if (checkBd ($sql, $db, $user, $codePass)){
$user = (int)mysqli_real_escape_string($db, $userid);
$codePass = mysqli_real_escape_string($db, $_GET['code']);
($sql = $db->prepare("select userid, code from password_reset where userid=? and code=? and TIMESTAMPDIFF(DAY, CURTIME(), timestamp) < 1"));
$sql->bind_param('ss', $user, $codePass);
$sql->execute();
$sql->bind_result($user, $codePass);
if ($sql->fetch()) {
$_SESSION['u_name']= sha1($user);
header("location: updatePass.php");
return true;
}
}
$sql->close();
$db->close();
【问题讨论】:
-
有什么问题?是服务器时间偏移的问题吗?
标签: php mysql timestamp mysqli