Попытка доступа к свойству, не являющемуся объектом
При попытке получить данные из базы данных вы сталкиваетесь с ошибкой «Попытка получить свойство необъекта». Эта ошибка возникает, когда вы пытаетесь получить доступ к свойству нулевого или несуществующего объекта.
В вашем конкретном сценарии на странице управления имеется следующий код:
$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con); $sidemenus = mysql_fetch_object($results);
И на странице просмотра:
foreach ($sidemenus as $sidemenu): echo $sidemenu->mname."<br />"; endforeach;
Ошибка возникает из-за того, что mysql_fetch_object() возвращает объект, а не массив объектов. Таким образом, на странице «Просмотр» вы пытаетесь перебрать неперебираемый объект, что приводит к ошибке.
Решение:
Чтобы решить проблему, вы следует либо:
$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con); $sidemenus = array(); while ($sidemenu = mysql_fetch_object($results)) { $sidemenus[] = $sidemenu; }
Это преобразует результаты в массив объектов, которые затем можно будет перебирать на странице просмотра.
PDO обеспечивает более современный и эффективный способ взаимодействия с базами данных. PDOStatement::fetchAll(PDO::FETCH_OBJ) возвращает массив объектов, аналогичный функциональности, которую вы ожидали от mysql_fetch_object().
$stmt = $con->prepare("SELECT * FROM sidemenu WHERE `menu_id` = :menu_id ORDER BY `id` ASC LIMIT 1"); $stmt->bindParam(':menu_id', $menu); $stmt->execute(); $sidemenus = $stmt->fetchAll(PDO::FETCH_OBJ);
Используя любое из этих решений, вы можете получить данные из базы данных и избежать ошибки «Попытка получить свойство, не являющееся объектом. "
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3