Fatal error: Call to a member function fetch_array() on a non-object問題的解決辦法

1.案例:

使用mysqli操作數據庫時,

//查詢操作
function dql($sql){
    $conn=@new mysqli('localhost','root','root','forum');
    if ($conn->connect_error) {
        die('數據庫連接錯誤!');
    }
    $result=$conn->query($sql);
    $arr=$result->fetch_array();
    return $arr;
    $conn->close();
}

使用此函數時,顯示如下的錯誤信息:

Fatal error: Call to a member function fetch_array() on a non-object


2.原因分析:

使用var_dump($result)查看dql()的返回結果,發現返回的是bool(false),可見函數dql()邏輯存在錯誤。

只有查詢成功,返回的是object類型的$result,纔可以使用語句$result->fetch_array();

沒有查詢成功,返回的是bool類型,即a non-object,不能使用$result->fetch_array()。

於是使用if()語句判斷一下$result的結果,修改後的程序如下:

//查詢操作
function dql($sql){
    $conn=@new mysqli('localhost','root','root','forum');
    if ($conn->connect_error) {
        die('數據庫連接錯誤!');
    }
    $result=$conn->query($sql);
    //查詢成功
    if ($result) {
        $arr=$result->fetch_array();
        return $arr;
    }else{

    echo '查詢出錯!';

    }
    $conn->close();
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章