首頁  >  文章  >  後端開發  >  為什麼在存取資料庫結果時出現「嘗試取得非物件的屬性」錯誤?

為什麼在存取資料庫結果時出現「嘗試取得非物件的屬性」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-08 01:13:03318瀏覽

Why am I getting the

嘗試存取非物件的屬性

嘗試從資料庫擷取資料時,遇到錯誤「嘗試取得屬性非物件的。」當當您嘗試存取null 或不存在的物件的屬性時,會發生此錯誤。

在您的特定場景中,您的控制頁面上有以下程式碼:

並且在您的視圖頁面上:

錯誤的產生是因為mysql_fetch_object() 傳回一個對象,而不是對象數組。因此,在“視圖”頁面中,您嘗試迭代不可迭代的對象,這會導致錯誤。

解決方案:

要解決此問題,您應該:

  • 將結果轉換為數組:

這會將結果轉換為物件數組,您可以使用然後可以在視圖頁面中進行迭代。

  • 使用 PDO:

PDO 提供了一種更現代、更有效率的與資料庫互動的方式。 PDOStatement::fetchAll(PDO::FETCH_OBJ) 傳回一個物件數組,類似於您期望從 mysql_fetch_object() 獲得的功能。

透過使用這些解決方案中的任何一個,您可以從以下位置檢索資料資料庫並避免錯誤「嘗試取得非物件的屬性。」

以上是為什麼在存取資料庫結果時出現「嘗試取得非物件的屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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