致命錯誤:非物件上的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中文網其他相關文章!