首页 > 解决方案 > 如何解决:stdClass 类的对象无法转换为 int

问题描述

我有这样的错误:

类 stdClass 的对象无法转换为 int 和未定义属性:stdClass::$tugas

在功能上:

public function cekNilai($id_mhs){

    $sql = 'SELECT COUNT(*) from nilai WHERE id_mhs =:id_mhs';
    $query = $this -> conn -> prepare($sql);
    $query -> execute(array('id_mhs'=>$id_mhs));
    if($query){

        $row_count = $query -> fetchObject();

        if ($row_count == 0){

            return false;

        } else {
            echo $row_count->tugas;
            return true;

        }
    } else {

        return false;
    }

}

我的数据库:

在此处输入图像描述

标签: phppdo

解决方案


对该方法的此调用fetchObject()返回一个包含查询值的对象,或者FALSE在失败时返回。但是在这里你将它与一个整数进行比较,这不是你想要的:

$row_count = $query -> fetchObject();
if ($row_count == 0){

另请注意,您正在查询行数:

$sql = 'SELECT COUNT(*) from nilai WHERE id_mhs =:id_mhs';

这将返回一个值(计数)——而不是一行。但是随后您尝试从对象中提取一列,这将不起作用,因为tugas对象中没有值:

return $row_count->tugas;

你可能想要这样的东西:

$row_count = $query->fetchColumn();
return $row_count > 0;

推荐阅读