我有这样的错误:
类stdClass的对象无法转换为int和Undefined 属性: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;
}
}
我的数据库:
答案 0 :(得分:2)
此对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;
答案 1 :(得分:1)
在执行中缺少“:”。
$query->execute(array(':id_mhs' => $id_mhs));
public function cekNilai($id_mhs){
$sql = 'SELECT tugas 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 )
{
return false;
}
else
{
echo $row_count->tugas;
return true;
}
}
else
{
return false;
}
}