PHP将取自sqli查询的值与相同的值进行比较,返回false
我从一个表中得到一个Int,然后将它与通过URL传递的应该是相同的数字进行比较。然而,它们似乎是不同的价值观PHP将取自sqli查询的值与相同的值进行比较,返回false,php,mysqli,Php,Mysqli,我从一个表中得到一个Int,然后将它与通过URL传递的应该是相同的数字进行比较。然而,它们似乎是不同的价值观 $access = $_GET["access"];//Num passed from url $access = mysqli_real_escape_string($con, $access); $verifyCode = "select access FROM users WHERE userName = '".$userName."'"; $verifyCodeX = mysq
$access = $_GET["access"];//Num passed from url
$access = mysqli_real_escape_string($con, $access);
$verifyCode = "select access FROM users WHERE userName = '".$userName."'";
$verifyCodeX = mysqli_query($con, $verifyCode);//Getting number from table
while($codeResult = mysqli_fetch_array($verifyCodeX))
{
$codeResult = $codeResult['access'];
echo "$codeResult";
echo "<br>";
echo "$access";
if($access == $codeResult)//comparing
{
echo "working fine";
}
else
{
echo "Numbers not the same";
}
}
当我回显数字时,它们是完全相同的,但我仍然得到不相同的数字。正如Wrikken所说,我不应该使用真正的“转义”字符串。我忘了我不会在查询中使用它,所以我把它放在那里了。删除该行修复了它。显示以下结果:var_dump$codesult;var_dump$access;为什么要这样做:$access=mysqli\u real\u escape\u string$con,$access;?如果您不打算在查询中使用$access。。。不要那样做。它会改变内容。$access或$codeResult都可以是比您看到的数字长得多的字符串。。Var_将它们都转储以查看它们的长度。Echo不会有足够的帮助如果$access是一个int,mysqli\u real\u escape\u字符串将不会对它起任何作用