MYSQL错误:警告:mysqli_fetch_assoc()期望参数1为mysqli_result,给定布尔值

时间:2015-12-12 15:27:54

标签: php mysql mysqli

我的SQL查询有什么问题吗?我总是得到这个错误“警告:mysqli_fetch_assoc()期望参数1是mysqli_result,boolean给出”。希望您能够帮助我。

<?php
include("connection.php");
$mysqli->query("SET NAMES 'utf8'");
$filter = "All";

if ($filter == "All"){
    $sql="SELECT * FROM city ";
}else if($filter == "Alphabetically"){
    $sql="SELECT * FROM city order by cityName ASC";
}else if ($filter == "Region"){
    $sql="SELECT * FROM city order by region";
}else{
    echo "Error sql";
}
$result=$mysqli->query($sql);
while($e=mysqli_fetch_assoc($result)){
    $output[]=$e; 
}

print(json_encode($output)); 
$mysqli->close();
     ?>

2 个答案:

答案 0 :(得分:4)

我假设您使用mysqli中的OO机制连接到数据库,因为您正在使用几乎所有的mysqli命令

但是这里

while($e=mysqli_fetch_assoc($result)){

您已更改为临时函数调用。

改为使用

while($e = $result->fetch_assoc()){

答案 1 :(得分:-1)

如果您的查询有任何sql错误或其返回0行。 所以检查第一次num_row计数

$result=$mysqli->query($sql);
if(mysqli_num_rows($result) > 0 ){       
    while($e=mysqli_fetch_assoc($result)){
                    $output[]=$e; 
                }
        }
        print(json_encode($output)); 
        $mysqli->close();

对于任何mysql错误。

 $mysqli->error;