正确的方法来检查局部变量是否等于局部变量
问题描述:
即使这些值应该相等,它也不计算,并且它直接到else事件。表列名称与数据库匹配,所以...正确的方法来检查局部变量是否等于局部变量
我需要某种类型的引号($ recruitcheck == $ recruitpass)吗?
$recruiter = $_POST["recruiter"];
$recruitpass = $_POST["recruitpass"];
$recruitcheck = mysqli_query($maindb, "select aurapass from auras where auraname='$recruiter'");
if($recruitcheck == $recruitpass) {
$badgecheck = mysqli_query($maindb, "select recruitbadge from auras where auraname='$recruiter'");
if($badgecheck == "0") {
echo "<script>alert('Recruiter information correct, but there is no recruit badge.')</script>";
exit();
} else {
echo "<script>alert('Recruiter badge accepted.')</script>";
$emailcheck = mysqli_query($maindb, "select * from auras where email='$email'");
$namecheck = mysqli_query($maindb, "select * from auras where auraname='$auraname'");
if(mysqli_num_rows($emailcheck) > 0 || mysqli_num_rows($namecheck) > 0){
echo "<script>alert('New auraname/email is already taken.')</script>";
exit();
} else {
exit();
}
}
} else {
echo "<script>alert('Aura information of recruiter is incorrect. Please, use preexisting aura information to confirm recruiter identity.')</script>";
exit();
}
答
$ recruitpass是一个字符串,而$ recruitcheck是mysqli_result对象。您需要在之前获取字符串值对象,然后将其与$ recruitpass进行比较
+0
经过一番激烈的挖掘之后,我发现mysqli_fetch_assoc工作到将mysqli_query结果存储为字符串。由于它是以关联方式存储的,因此可以通过$ variable ['columnname']调用这些字符串。为了比较,请检查$ variable ['columnname'] == $ stringvariable。在我的情况下,$ recruitfetch = mysqli_fetch_assoc($ recruitcheck);如果($ recruitfetch ['aurapass'] == $ recruitpass {code works}。谢谢大家! –
'$ recruitpass'是一个字符串,'$ recruitcheck'是__not__字符串。 –
通过用'var_dump'打印出来来检查变量。 'mysqli_query'返回一个资源,所以它永远不会等于一个字符串值。 http://php.net/manual/en/mysqli-result.fetch-row.php – dan08
获取行以从数据库获取数据。 –