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