gpt4 book ai didi

php - mysqli 查询中的问题 - 时间戳

转载 作者:可可西里 更新时间:2023-11-01 08:08:00 25 4
gpt4 key购买 nike

我的查询有问题。

数据库中的字段 ( 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();

最佳答案

您想传递一个 DATETIME 值,而不仅仅是一个 TIME,请使用 NOW() 而不是 CURTIME()。 (如果您想忽略一天中的时间,请使用 CURDATE()

另外,反转参数顺序,就像函数 datetime2 - datetime1 那样。

参见 documentation了解更多详情。

TIMESTAMPDIFF(DAY, `timestamp`, NOW()) < 1

为您的列名称使用保留字也无济于事。

关于php - mysqli 查询中的问题 - 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com