如何修复在非对象上调用成员函数fetch()


How to fix Call to a member function fetch() on a non-object?

我在第26行有一个问题,它说:致命错误:在C:'OpenServer'domains'bashlam.com'models'Product.php的非对象上调用成员函数fetch()我找不到问题,我在($result)上做了var_dump是说bool(false),所以不明白我做错了什么?

public static function getLatestProducts($count = self::SHOW_BY_DEFAULT, $page = 1)
{
    $count = intval($count);
    $db = Db::getConnection();
    $productList = array();
    $result = $db->query("SELECT id, name, price, image, is_new FROM product "
            . "WHERE status = '1' "
            . "ORDER BY id DESC "
            . "LIMIT " . $count);
    var_dump($result);   
    $i = 0;
    while($row = $result->fetch()){
        $productList[$i]['id'] = $row['id'];
        $productList[$i]['name'] = $row['name'];
        $productList[$i]['image'] = $row['image'];
        $productList[$i]['price'] = $row['price'];
        $productList[$i]['is_new'] = $row['is_new'];
        $i++;
    }
    return $productList;
}

根据PDO::query的文档说:

PDO::query()返回一个PDOStatement对象,如果失败则返回FALSE。

你的SQL查询出错了,所以要确保它是正确的

您在查询中出现错误,因此"$db->query()"返回null或false。你可以打印你的查询并在mysql控制台中调试它。

Statut可能是整型,所以只要去掉' '