Перейти к контенту

fatal error при использовании query() внутри своей функции


Рекомендуемые сообщения

ситуация такая

создаю свою функцию, например, function getcards

назначение - получить из базы список последних отправленных открыток.

не спрашивайте, зачем это нужно...

так вот, строки оттуда (описываю с соединением к БД)

 

$dbconn = new mysqli($host, $user, $pass, $db); //перед этим, разумеется, переменные объявлены;


$getcard = 'SELECT name, path		
	FROM cards_files
	ORDER BY last_send DESC
	LIMIT 0,5';
$showcard = $dbconn->query($getcard);

 

и, когда я пытаюсь использовать функцию, php выкидывает

Fatal error: Call to a member function query() on a non-object in ((((path to file)))) on line 30

 

p.s. если использовать процедурный подход, то все работает (те mysql_query и тп).

А ооп не пашет..

Я поговорил со знакомым - он ни черта в php не смыслит, но сказал, что в принципе должно все работать.

 

Может, кто-то объяснит, почему так?

Я глуп или php криво настроен?

Хотелось бы услышать комментарий Sannis'a.....

Ссылка на комментарий
Поделиться на других сайтах

Вероятно после первой строки $dbconn == false?

PHP мог быть собран без поддержки MySQLi... Проверьте.

Ссылка на комментарий
Поделиться на других сайтах

Sannis, проверял. Везде в остальных местах работает. Экстеншен включен.

 

Такой запрос (просто в теле контроллера, без функции)

$query = 'select * from sh_cards';
$result = $connect->query($query);

работает

 

А по поводу функции...

Если идет проверка

 

if(mysqli_connect_errno())
{
echo 'error';
exit;
}

 

запрос идет далее, значит, проверка выполняется...

и соединение установлено...

Изменено пользователем elcomnet
Ссылка на комментарий
Поделиться на других сайтах

У вас там получается 2 объекта с одинаковыми данными подключения в скрипте?
Ссылка на комментарий
Поделиться на других сайтах

Что, подобной проблемы ни у кого не было?

Ну тогда закрывайте нафиг тему. Пойду php клаб пытать)))

Ссылка на комментарий
Поделиться на других сайтах

А пох.

Пробовал и внутри и снаружи.

И в начале документа. Абсолютно пох.

У меня такое впечатление, что он просто не видит в переменной запрос.

И пишет, что в query() не был введн запрос....

 

Кстати, как, мать её, расшифровывается эта ошибка?

Ссылка на комментарий
Поделиться на других сайтах

$dbconn = new mysqli($host, $user, $pass, $db);

замените на

print $host.' - '.$user.' - '.$pass.' - '.$db;
$dbconn = new mysqli($host, $user, $pass, $db);
print_r($dbconn);

Что будет?

 

И объясните нам таки, в каких областях какие переменные лежат и где query вызывается.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.