提问人:drakepolo 提问时间:1/3/2022 更新时间:1/3/2022 访问量:258
为什么我会收到 null 作为包含数据的 sql 列的响应?(菲律宾比索)
Why am I receiving null as a response for an sql column with data in it? (PHP)
问:
我正在构建一个登录系统,除了将输入的密码与数据库中的密码交叉引用的部分外,其他所有部分都运行良好。因此,当我检查密码是否匹配时,我意识到数据库中的密码返回为空。请问发生了什么事??(“uidExists”方法没有问题,似乎只是在“loginUser”方法中)。
这是基于此视频 https://www.youtube.com/watch?v=gCo6JqGMi30
我相信大约是一小时 40 分钟,他进入了 loginUser 功能。
function loginUser($conn,$username,$pwd){
$uidExists = uidExists($conn,$username,$username);
if($uidExists === false){
header("location: ../login.php?error=wrongslogin");
exit();
}
else{
echo $pwd;
if(is_null($uidExists["userPwd"])){
echo "Empty bruv";
}
else{
echo $uidExists["userPwd"];
}
}
function uidExists($conn,$username,$email){
$sql = "SELECT * FROM users WHERE userUid = ? OR userEmail = ?;";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt,$sql)){
header("location: ../signup.php?error=stmtfailed");
exit();
}
mysqli_stmt_bind_param($stmt,"ss",$username,$email);
mysqli_stmt_execute($stmt);
$resultData = mysqli_stmt_get_result($stmt);
if(mysqli_fetch_assoc($resultData)){
return $row;
}
else{
$result = false;
return $result;
}
mysqli_stmt_close($stmt);
}
答:
-1赞
Rob Moll
1/3/2022
#1
这看起来不对:
$uidExists = uidExists($conn,$username,$username);
这应该是:
$uidExists = uidExists($conn,$username,$userPwd);
评论
0赞
drakepolo
1/3/2022
它在视频中是如何制作的,它在他的这边工作得很好。
1赞
ADyson
1/3/2022
@RobMoll您确定它应该按照您的建议发送密码吗?uidExists 函数需要电子邮件作为第三个参数,而不是密码
0赞
Rob Moll
1/3/2022
我刚刚浏览了视频,@ 1:39:00 他表明他这样做是因为用户可以提供用户名或电子邮件。所以这似乎不是问题。很抱歉造成混乱。
0赞
drakepolo
1/3/2022
@RobMoll是的,起初我以为你在做某事,但后来我查看了视频,记得他这样做是为了接受电子邮件和用户名作为输入
评论
usersName,usersEmail,usersId,usersPwd
users
userEmail
userUid
CREATE
mysqli_stmt_close()