Неустранимая ошибка: вызов функции-члена FetchRow () для не-объекта

Это мое сообщение об ошибке Фатальная ошибка : Call to a member function FetchRow() on a non-object in C:\AppServ\www\hfix\include\care_api_classes\class_mini_dental.php on line 749

и это код :

 if ($cc=='0'){$cc='1';} else{$cc='0';} $this->sql='SELECT `encounter_nr`,`article_item_number`,`dosage`,`price` FROM `care_encounter_prescription` WHERE `bill_status` = "archived" AND `prescribe_date` = "'.$dt.'" ORDER BY encounter_nr ASC '; $this->result=$db->Execute($this->sql); $this->sql='SELECT DISTINCT(`encounter_nr`) FROM `care_encounter_prescription` WHERE `bill_status` = "archived" AND `prescribe_date` = "'.$dt.'" ORDER BY encounter_nr ASC '; $this->newquery=$db->Execute($this->sql); $patients = $this->newquery->RecordCount(); while($this->zrow = $this->result->FetchRow()){ $this->sql = 'SELECT `unit_cost` FROM `care_tz_drugsandservices` WHERE `item_id` = '.$this->row[1]; $this->lastquery=$db->Execute($this->sql); if ($vx = $this->lastquery->FetchRow()) $cost = $vx[0]; else $cost = 0; $costs += $this->row[2] * $cost; # dosage * cost $income += $this->row[2] * $this->row[3]; # dosage * price } } 

Предполагая, что строка 749 файла C:\AppServ\www\hfix\include\care_api_classes\class_mini_dental.php ссылается на эту строку в вашем примере …

  if($this->row=$this->result->FetchRow()){ 

Тогда ваша проблема заключается в том, что $this->result не является объектом. Вы присваиваете $this->result в предыдущей строке с возвращаемым значением $db->Execute($this->sql) . Поэтому, если $db->Execute() возвращает что-либо иное, кроме объекта, вы получите эту ошибку. Мое предположение: $db->Execute() не выполнило ваш запрос по той или иной причине и возвращает boolean false или какое-то другое значение, отличное от объекта, как указание на ошибку. Вы должны сначала проверить возвращаемое значение для ошибок, прежде чем вслепую использовать его так.

Также см. https://stackoverflow.com/a/12769983/1878262 [related]