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

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 вызывается.

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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