试图获取非对象MySQLI的属性 - 变量

时间:2016-12-10 16:55:15

标签: php mysqli

我的脚本中出现以下错误

Trying to get property of non-object in ... on line 15

我知道为什么因为我的数据库表是空的,但这就是我想要的,直到用户在网站上做某事。

所以我的问题是:如何以不同的方式编码这一行,所以即使表是空的它也会继续运行?

第15行:

} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1) {
    echo 'You have to wait '.$venter.' seconds';
} else {

这是分配$radvent$queryvent的方式:

$queryvent = db_query("SELECT * FROM `sperrer` WHERE `brukerid`='$id' AND `sperre`='utpressing'") or die('Error 1: '.mysqli_error());
$radvent = mysqli_fetch_object($queryvent);

我感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

让我们来看看。

问题

  • 错误

      

    尝试在第15行的........中获取非对象的属性

    表示$radvent不是对象。

  • 这意味着mysqli_fetch_object()没有返回对象,因为它返回NULL,为explained in the docs

  • 为什么mysqli_fetch_object()会返回NULL?因为数据集中没有行。

  • 为什么数据集中没有行?因为您的表格是空的,正如您在问题中所承认的那样。

解决方案

在继续之前检查数据集是否为空。一种方法:

} elseif(!is_object($radvent)) {
    // Oops! There's no data. Do something about that
} elseif($radvent->sperretil > $time || mysqli_num_rows($queryvent) == 1){
    echo 'You have to wait '.$venter.' seconds';
} else {

这不一定是最好的方法,具体取决于您的实际代码;它只是一种选择。