嘗試存取非物件的屬性:已解決
MySQL 查詢通常會傳回多行。要迭代這些行,我們可以使用帶有 mysql_fetch_object() 的循環來將每一行作為物件取得。但是,當我們嘗試存取不存在的物件的屬性時,會出現錯誤「嘗試取得非物件的屬性」。此錯誤表示查詢結果為空。
要解決此問題,我們可以檢查查詢結果是否存在。這是更正後的代碼:
控制頁面:
<?php include 'pages/db.php'; $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='{$menu}' ORDER BY `id` ASC LIMIT 1", $con); // Check if the query result exists if ($results) { $sidemenus = mysql_fetch_object($results); } ?>
查看頁面:
<?php if ($sidemenus) { foreach ($sidemenus as $sidemenu): ?> <?php echo $sidemenu->mname."<br />"; ?> <?php endforeach; } ?>
或者,您可以將PDO 與PDOStatement::fetchAll(PDO::FETCH_OBJ)一起使用自動從您的查詢中檢索物件數組。
以上是為什麼存取 MySQL 查詢結果時會出現「Trying to get property of non-object」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!