как это исправить: объект класса stdClass не может быть преобразован в int в - PullRequest
0 голосов
/ 24 августа 2018

У меня ошибка, подобная этой:

Объект класса 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;
    }

}

Моя база данных:

enter image description here

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Отсутствует ":" в выполнении.

$query->execute(array(':id_mhs' => $id_mhs));

edit

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;
    }
}
0 голосов
/ 24 августа 2018

Этот вызов метода 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...