PHP注意尝试获取非对象的属性

时间:2018-01-11 02:27:05

标签: php mysql

我似乎收到了一些建议'尝试获取非对象属性'的php通知。

我认为这是我构建mysql语句的方式,但我有点不确定,我在这里得到了帮助。

功能如下: -

public function getPreviousBlock($iHeight=0) {
    $stmt = $this->mysqli->prepare("
        SELECT height
        FROM " . $this->block->getTableName() . "
        WHERE height < ?
        ORDER BY height DESC
        LIMIT 1");
    if ($this->checkStmt($stmt) && $stmt->bind_param('i', $iHeight) && $stmt->execute() && $result = $stmt->get_result())
        return $result->fetch_object()->height;
    return $this->sqlError();
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果结果集中没有更多行,

fetch_object()将返回NULL。当然,NULL不是一个对象,因此您将收到此错误。

所以你需要检查一下:

$obj = $result->fetch_object();
if ($obj) {
   return $obj->height;
} else {
   return null;
}