错误的SQL结果条件

时间:2014-05-30 13:07:26

标签: php mysqli

我遇到了一些问题,其中有一个查询应该返回false而它返回true。

首先,我对一个不存在的id进行了SQL查询:

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

然后我添加了一个var_dump来查看其中的内容:

var_dump($result);

并且在一个条件之后:

if ($result==0) {
  echo 'No results where found';
} else {
  echo 'Some results where found';
}

这是var_dump

的结果
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(12) ["lengths"]=> NULL ["num_rows"]=> int(0) ["type"]=> int(0) } 

找到了一些结果

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

我在这里做错了什么?

2 个答案:

答案 0 :(得分:5)

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

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

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

  

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

答案 1 :(得分:0)

我认为您的id字段是integer,所以:

SELECT * FROM myTable WHERE id=1

应该有效