错误的SQL结果条件

Sat*_*000 0 php mysqli

我对某些代码有一些问题,其中有一个查询应该返回false并且它返回true.

首先,我有一个不存在的id的SQL查询:

$result = mysqli_query($con,"SELECT * FROM myTable WHERE id='1' "); //There no id with value of 1
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个var_dump来查看是什么:

var_dump($result);
Run Code Online (Sandbox Code Playgroud)

并在一个条件后:

if ($result==0) {
  echo 'No results where found';
} else {
  echo 'Some results where found';
}
Run Code Online (Sandbox Code Playgroud)

这是var_dump的结果

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(12) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } 
Run Code Online (Sandbox Code Playgroud)

找到了一些结果

结果应该是:找不到结果,正如您在上面看到的那样,它会返回:找到一些结果

我在这里做错了什么?

Abh*_*rty 5

您需要mysqli_num_rows()查看查询是否有某些行

$count=mysqli_num_rows($result);
if($count == 0){
 // no result
}else{
 // there is data and do whatever you want
}
Run Code Online (Sandbox Code Playgroud)

检查文档mysqli_query()和返回部分 http://in2.php.net/mysqli_query

失败时返回FALSE.对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象.对于其他成功的查询,mysqli_query()将返回TRUE.