PHP将取自sqli查询的值与相同的值进行比较,返回false

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

我从一个表中得到一个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 = 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字符串将不会对它起任何作用