查询执行 .. 但假设例如用户更改了 $_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/