首頁 >後端開發 >php教程 >為什麼我在 PHP 資料庫查詢中收到「致命錯誤:非物件上的 fetch_assoc()」?

為什麼我在 PHP 資料庫查詢中收到「致命錯誤:非物件上的 fetch_assoc()」?

Linda Hamilton
Linda Hamilton原創
2024-12-09 00:23:14691瀏覽

Why Am I Getting a

致命錯誤:非物件上的fetch_assoc()

執行資料庫查詢時,您可能會遇到下列錯誤訊息:

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

當對非物件呼叫fetch_assoc()方法時,通常會發生此錯誤mysqli_result 物件。

問題分析:

在提供的程式碼片段中,您可能編寫瞭如下所示的函數:

function get_recent_highs(...){
    $result = $this->database->query($query);
    while($row = $result->fetch_assoc()) {...}
}

如果$result是非對象,則fetch_assoc() 呼叫將會失敗。如果 SQL 查詢中存在錯誤,導致 query() 傳回 false 而不是結果對象,就會發生這種情況。

解決方案:

解決錯誤,請檢查query()的回傳值。如果傳回 false,則拋出異常或相應地處理錯誤。例如:

function get_recent_highs(...){
    $result = $this->database->query($query);
    if (!$result) {
        throw new Exception("Database Error");
    }
    while($row = $result->fetch_assoc()) {...}
}

透過捕獲 query() 中的錯誤,可以確保只在有效的結果物件上呼叫 fetch_assoc(),從而防止非物件錯誤。

以上是為什麼我在 PHP 資料庫查詢中收到「致命錯誤:非物件上的 fetch_assoc()」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn