非对象错误的属性,而它是一个对象

时间:2014-03-23 15:00:08

标签: php

当我想查看数据并从数据库中打印一些数据时,我收到此错误:

Trying to get property of non-object in XYZ on line 76

现在这一行76:

printf('name": "%s",', $title2->title);

更具体地说,第76行附近的部分是:

            $rtitle = "SELECT title FROM table WHERE genre='$category'";
        $ptitles = mysqli_query($connection,$rtitle) or die(mysqli_error($connection));
            while ($title2 = mysqli_fetch_object($ptitles));
            printf('name": "%s",', $title2->title);

我不完全确定为什么会出现此错误。显然这是因为$ title2-> title不是对象,但是,使用上面的类似函数可以正常工作。所以不完全确定这里出了什么问题。非常感谢帮助!提前谢谢!

2 个答案:

答案 0 :(得分:0)

PHP错误发生在该行:

printf('name": "%s",', $title2->title);

但您的问题出在while声明中:

while ($title2 = mysqli_fetch_object($ptitles));

放置;的方式意味着您只是在循环中循环而没有任何代码。

尝试

while ($title2 = mysqli_fetch_object($ptitles))
   printf('name": "%s",', $title2->title); // only code inside loop

while ($title2 = mysqli_fetch_object($ptitles)) {
   printf('name": "%s",', $title2->title);
   // ... any further code you want inside your loop
}

答案 1 :(得分:0)

我认为您遇到的问题是因为您没有进入循环而是以分号结束,因此您的对象可能会有另一个级别0

while ($title2 = mysqli_fetch_object($ptitles));
printf('name": "%s",', $title2->0->title);

否则你可以使用循环

while ($title2 = mysqli_fetch_object($ptitles))
{
    printf('name": "%s",', $title2->title);
}