第一行后获取数据错误

时间:2014-11-14 12:30:10

标签: php mysql fetch

我目前在从数据库中获取数据时遇到问题。它真的让我疯狂,特别是因为它是我用来获取其他工作表的确切代码。

    if ($content = $database->prepare($sql_get_all_articles)){
            $content->execute();
            $content->bind_result($id, $title, $content, $author, $date_posted);

                while($content->fetch()){
                    echo "<article>
                          <h2>".$title."</h2>
                          <div class=\"article-info\">Posted on <time datetime=\"".$date_posted."\">".$date_posted."</time> by <a href=\"#\" rel=\"author\">".$author."</a></div>
                          <p>".$content."</p>
                          <a href=\"#\" class=\"button\">Read more</a>
                          <a href=\"#\" class=\"button\">Comments</a>
                          </article>";
                }

            $content->close();
        }

代码工作一次,它只发布第一篇文章。但是当尝试第二个时,它会返回错误:

致命错误:在第47行的C:\ xampp \ htdocs \ index.php中的非对象上调用成员函数fetch()

我使用的SQL语句是:

$sql_get_all_articles = "SELECT id, title, content, author, date_posted FROM article";

2 个答案:

答案 0 :(得分:1)

if ($content = $database->prepare($sql_get_all_articles)){
        $content->execute();

            while($result = $content->fetchObject()){
                echo "<article>
                      <h2>".$result->title."</h2>
                      <div class=\"article-info\">Posted on <time datetime=\"".$result->date_posted."\">".$date_posted."</time> by <a href=\"#\" rel=\"author\">".$result->author."</a></div>
                      <p>".$result->content."</p>
                      <a href=\"#\" class=\"button\">Read more</a>
                      <a href=\"#\" class=\"button\">Comments</a>
                      </article>";
            }

        $content->close();
    }

答案 1 :(得分:1)

您正在使用$content为查询和bind_result()中提到的字段之一命名,以捕获查询结果。因此,第一个fetch()操作会覆盖查询。