大佬教程收集整理的这篇文章主要介绍了PHP-MySQLi查询中的问题-时间戳,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的查询有问题.
我想在此代码中验证是否存在一个用户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: @R_618_9531@ePass.PHP");
return true;
}
}
$sql->close();
$db->close();
解决方法:
您想传递一个datetiR_668_11845@E值,而不只是一个TIME,使用Now()而不是CURTIME(). (如果要忽略一天中的时间,请使用CURDATE().
同样,颠倒参数顺序,就像函数执行datetiR_668_11845@e2-datetiR_668_11845@e1一样.
有关更多详细信息,请参见documentation.
timestAMPDIFF(DAY, `timestamp`, Now()) < 1
为列名使用保留字也无济于事.
以上是大佬教程为你收集整理的PHP-MySQLi查询中的问题-时间戳全部内容,希望文章能够帮你解决PHP-MySQLi查询中的问题-时间戳所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。