我试图为我的网站创建一个登录帐户系统,当用户注册时,我检查数据库中是否已有帐户。我创建了一个名为“check_user_exists”这里的功能是为为什么我的sql准备语句没有给出正确的响应?
function check_account_exists($username, $conn){
if($stmt = $conn->prepare("SELECT * FROM users WHERE username=?")){
$stmt->bind_param('s', $username);
$stmt->execute();
echo $stmt->num_rows;
if($stmt->num_rows == 1){
return true;
}else{
return false;
}
}else{
//couldn't prepare statement
return false;
}
}
代码然而,当我去运行,这甚至每一次当我知道在数据库中的值已经存在,则返回false。在此之前,我还没有任何MySQL错误,但我检查了错误日志,并且没有显示任何错误。我加了echo stmt->num_rows;
,但总是输出0.发生什么事了?
我测试$ stmt是否准备正确,而不是如果$ stmt的值等于sql的准备。 – blendy
@ arif_suhail_123在PHP中,你可以声明变量里面的if语句 – JapanGuy
@ arif_suhail_123它很混乱,但它实践了很多 – JapanGuy