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

时间:2015-10-25 11:57:38

标签: php

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

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;
}

3 个答案:

答案 0 :(得分:1)

根据PDO :: query的文档说:

  

PDO :: query()返回PDOStatement对象,或者失败时返回FALSE。

您的SQL查询出错了,所以请确保它是正确的。

答案 1 :(得分:0)

您在查询中有错误,因此" $ db-> query()"返回null或false。您可以打印您的查询并将其存储在mysql控制台中。

答案 2 :(得分:-1)

Statut可能是一个int,所以只需删除' '