我遇到了一些问题,其中有一个查询应该返回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) }
找到了一些结果
结果应该是:找不到结果,正如您在上面看到的那样,它会返回:找到的一些结果
我在这里做错了什么?
答案 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
应该有效