Php尝试在PDO null值中获取非对象的属性

时间:2016-06-16 18:46:39

标签: php pdo fetch

我正在使用MySQL PDO类。我想要争吵。它成功完成了这段代码。但如果没有数据。我得到'注意:试图在PDO中获得非对象的属性'

   <?php
   ...

    public static function getRow($query, $bindings = null)
        {
            if(!$stmt = self::query($query, $bindings))
                return false;

            $result =  $stmt->fetch();
            return $result;
        }

   $page = DB::getRow('SELECT * FROM page WHERE id = "homepage" ');
   echo $page->content;

    ?>

如果可用的id数据“主页”。 输出:

“主页bla bla ...”;

如果没有数据。 输出:

“注意:尝试在第139行的/var/www/vhosts/kkkk.com/httpdocs/index.php中获取非对象的属性”

我该如何解决?

“我想在函数中找到解决方案”

2 个答案:

答案 0 :(得分:1)

当没有数据$stmt->fetch提取 object的内容时。这个东西肯定没有content属性。

使用简单的检查,无论您是否有对象:

echo $page? $page->content : 'No content available';
// or more complicated if you don't want to output anything when there's no data:
if ($page) {
    echo $page->content;
}

<强>更新

public static function getRow($query, $bindings = null, $property_name = '')
{
    if(!$stmt = self::query($query, $bindings))
        return false;

    $result =  $stmt->fetch();
    if ($result) {
        return $property_name? $result->$property_name : $result;
    } else {
        return false;
    }
}

答案 1 :(得分:1)

如果你得到了结果,请检查一下:

if ($page) {
    echo $page->content;
}