嘗試存取非物件的屬性
嘗試從資料庫擷取資料時,遇到錯誤「嘗試取得屬性非物件的。」當當您嘗試存取null 或不存在的物件的屬性時,會發生此錯誤。
在您的特定場景中,您的控制頁面上有以下程式碼:
並且在您的視圖頁面上:
錯誤的產生是因為mysql_fetch_object() 傳回一個對象,而不是對象數組。因此,在“視圖”頁面中,您嘗試迭代不可迭代的對象,這會導致錯誤。
解決方案:
要解決此問題,您應該:
這會將結果轉換為物件數組,您可以使用然後可以在視圖頁面中進行迭代。
PDO 提供了一種更現代、更有效率的與資料庫互動的方式。 PDOStatement::fetchAll(PDO::FETCH_OBJ) 傳回一個物件數組,類似於您期望從 mysql_fetch_object() 獲得的功能。
透過使用這些解決方案中的任何一個,您可以從以下位置檢索資料資料庫並避免錯誤「嘗試取得非物件的屬性。」
以上是為什麼在存取資料庫結果時出現「嘗試取得非物件的屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!