首页 > 数据库 > mysql教程 > 为什么我的 PHP 代码中出现'尝试获取非对象的属性”错误?

为什么我的 PHP 代码中出现'尝试获取非对象的属性”错误?

Patricia Arquette
发布: 2024-12-03 12:27:14
原创
368 人浏览过

Why Am I Getting a

排查“尝试获取非对象的属性”错误

遇到错误消息“尝试获取非对象的属性”时-对象”,检查其发生的上下文非常重要。让我们深入研究一个具体案例来了解原因和解决方案。

问题陈述

在 PHP 脚本中,查询从数据库中检索数据,但是当尝试访问检索结果的特定属性时,会出现错误。涉及的代码片段如下:

控制页面

include 'pages/db.php';
$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;
}
登录后复制

通过使用 while 循环迭代结果,每个对象都可以添加到 $sidemenus 数组,创建一个数组可以在视图页面中按预期访问。

以上是为什么我的 PHP 代码中出现'尝试获取非对象的属性”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板