查询错误和while循环问题

3

我已经试了几天,但仍无法解决这个问题。我已经搜索并向朋友询问过,但没有得到好的结果。

当我使用 $db->query() 时,它会出现以下错误: 致命错误:对非对象调用成员函数 fetch()

而当我使用 prepare 时,就没有任何结果,只有一个空白页。

<?php
$query = $dbh->query("SELECT name, ad_offer, content, expiration_date FROM biz_ads ORDER BY id DESC LIMIT 0,5");
while($row = $query->fetch(PDO::FETCH_NUM)) {
        $name = $row[0];
        $ad_offer = $row[1];
        $content = $row[2];
        $expiration_date = $row[3];
        ?>
        <div class="name"> 
        <?php 
        echo $name;
        ?>
        <div class="ad_offer">
        <?php
        echo $ad_offer;
        ?>
        </div>
        <div class="content">
        <?php
        echo $content;
        ?>
        </div>
        <div class="expiration_date">
        <?php
        echo $expiration_date;
        ?>
        </div>
    <?php
        }
?>

非常感谢您的帮助。奇怪的是,不久之前我实际上成功地运行了一个旧的类似查询,但现在它却不起作用了。

<?php

$hostname = 'localhost';
$username = 'root';
$password = '';

$dbh = new PDO("mysql:host=$hostname;dbname=broet;", $username, $password);

?>

你能否在第一行后面输出 var_dump($query) 的结果? - Antoine
1
听起来查询失败了。尝试在查询后输出 $dbh->errorInfo() - showdev
更新了创建$dbh的内容。 - user2328659
1
$dbh->errorInfo() 返回什么信息? - Barmar
你尝试手动执行查询了吗?(例如在PHPMyAdmin中)。看起来查询失败了。(OT:使用@name回答问题,这样提问的人就会收到通知,知道你已经回复了) - MarioP
显示剩余4条评论
1个回答

0
$query = "SELECT name, ad_offer, content, expiration_date 
         FROM biz_ads 
         ORDER BY id DESC 
         LIMIT 0,5";
$stmt = $dbh->prepare($query);
$stmt->execute()or die("error");

抱歉,我的错!有效了!非常感谢@Lance。 - user2328659

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接