尝试获取 非对象的属性

2022-08-30 11:03:12

在“控制”页上:

<?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);
?>

在“查看”页面上:

<?php foreach ($sidemenus as $sidemenu): ?>
  <?php echo $sidemenu->mname."<br />";?>
<?php endforeach; ?>

错误是:

注意:尝试在第 22 行的 C:\wamp\www\phone\pages\init.php 中获取非对象的属性

你能修复它吗?我不知道发生了什么。


答案 1

请查看手册以了解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()


答案 2

您的错误

注意:尝试在第 22 行的 C:\wamp\www\phone\pages\init.php 中获取非对象的属性

您的评论

@22 是<?php echo $sidemenu->mname."<br />";?>

$sidemenu不是对象,并且您正在尝试访问其属性之一。

这就是你错误的原因。


推荐