@dudoser
студент

Fatal error: Call to a member function fetch_assoc() on a non-object in как исправить?

залил я свой сайт на бесплатный хост (вот этот: https://www.zzz.com.ua)
вот ссылка на сайт: hostt.zzz.com.ua
залил я и БД
но БД не работает, когда я хочу посмотреть новости на сайте то вылазит ошибка

Fatal error: Call to a member function fetch_assoc() on a non-object in /profiles/p/ph/pha/phasm/hostt.zzz.com.ua/functions/functions.php on line 24

вот код:
function resultToArray ($result) {
		$array = array ();
		while (($row = $result->fetch_assoc()) != false) 
			$array[] = $row;
		return $array;
	}

как быть?
  • Вопрос задан
  • 795 просмотров
Пригласить эксперта
Ответы на вопрос 4
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Проверить выполнение запроса, запрос либо не проходит, либо возвращает пустой результат. не знаю как реализовано подключение, по этому вполне возможно что и к базе нет соединения.
Ответ написан
BOOMER_74
@BOOMER_74
Web-разработчик
Читаем документацию:
Возвращает FALSE в случае неудачи. В случае успешного выполнения запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для остальных успешных запросов mysqli_query() вернет TRUE.

Поэтому:
function resultToArray ($result) {
  if ($result !== false){
    $array = array ();
    while ($row = $result->fetch_assoc()) 
      $array[] = $row;
    return $array;
  }

  return $result === true ? true : null; // Или любое другое условие
}
Ответ написан
martin74ua
@martin74ua
Linux administrator
на хостинге поддержка mysql есть? база создана? логин и пароль прописаны правильно?
что сказала техподдержка хостинга?
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега PHP
Этот неловкий момент, когда SO.RU делает Тостера, как стоящего: mysql_fetch_array() expects parameter 1 to be reso...

Если коротко, то перед соединением с БД надо написать волшебную строчку
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

запустить свой скрипт и узнать, что не так с этим хостом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы