解决 PHP 中的“尝试获取非对象的属性”错误
使用 PHP 时,您可能会遇到错误“尝试获取非对象的属性”获得非物体的财产。”当尝试访问尚未正确初始化或为 null 的对象的属性时,通常会发生此错误。
在提供的代码的情况下,问题在于从数据库获取侧菜单数据。 mysql_fetch_object() 函数返回单个对象,而不是对象数组。因此,在视图页面中迭代 $sidemenus 变量会触发错误。
要解决此问题,请将控制页面上的代码修改为:
$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; }
此代码将 mysql_fetch_object() 返回的单个对象转换为对象数组。然后,视图页面可以迭代数组,而不会遇到属性错误。
另一种替代方法是使用 PDO,它为数据库交互提供更现代、更安全的接口。 PDOStatement::fetchAll(PDO::FETCH_OBJ) 方法可用于从数据库查询中获取对象数组。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3