解决 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) 方法可用于从数据库查询中获取对象数组。
以上是如何修复 PHP 中的'尝试获取非对象的属性”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!