查询执行 .. 但假设例如用户更改了 $_GET['sub'] 的值以获取不在数据库中的 id,例如: 60 。
它应该打印“NOT FOUND”而不是打印 found !这是为什么 ?

 $main = new  MainClass();

 $subid = mysqli_real_escape_string($main->MsqlConRes,$_GET['sub']);

if (is_numeric($subid))
{
    $main->query = mysqli_query($main->MsqlConRes,"SELECT * FROM subjects WHERE id = ".$subid."") or die(mysqli_error());
    if ($main->query)
    {
        echo'Found';
    }
    else
        echo'Not Found !';
}
else
    $main->errors(404);

最佳答案

mysqli_num_row() 中使用 if

if (mysqli_num_row($main->query)>0)
    {
        echo'Found';
    }
    else
        echo'Not Found !';

由于查询正在正确执行,因此 if ($main->query) 将始终为真

关于php - 执行 mysqli_query 有效,但它不会返回 WHERE CLAUSE 中给出的确切行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52912267/

10-14 15:06
查看更多