Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Fatal error: Call to a member function close()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не закрывается запрос
SOCIALIST
Отправлено: 26 Февраля, 2015 - 18:31:56
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Здравствуйте, такая проблема, недавно начал совсем небольшой проект на PHP, решил писать на ООП и в качестве драйвера выбрать mysqli.
Все шло хорошо, однако возникла хоть и небольшая, но так и не поддающаяся решению проблема: есть у меня класс db, в нем функция query,
код:
Спойлер (Отобразить)

$close раньше не было, я ее добавил потом, для того, чтобы решить проблему, но ничего не вышло.
Суть: когда я в соседнем классе в функции вызываю $q=$db->query("SELECT ...");, а затем пишу
PHP:
скопировать код в буфер обмена
  1.         if($q->num_rows==1)
  2.                 {      
  3.                         $q->close();
  4.                         return true;
  5.                 }
- все отлично работает, а вот $q=$db->query("UPDATE..."); $q->close(); вызывает ошибку Fatal error: Call to a member function close() on a non-object in путь on line строка.
Тоже самое случится, если написать $q=$db->query("UPDATE ...",true);.
При этом, если запрос не закрывать - все отлично работает, но так не хорошо же...
Тоже самое в функциях с DELETE и INSERT.
В общем, прошу вашей помощи, т.к. думаю над этим уже несколько часов...
Заранее спасибо.
P.S. Про prepare знаю, не использую из соображений привычки.

(Отредактировано автором: 26 Февраля, 2015 - 18:38:05)

 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2015 - 19:17:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Так и не должно быть никакого объекта.

http://php.net/manual/en/mysqli.query.php
Цитата:
For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.


-----
PostgreSQL DBA
 
 Top
SOCIALIST
Отправлено: 26 Февраля, 2015 - 20:26:12
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Мелкий пишет:
Так и не должно быть никакого объекта.

http://php.net/manual/en/mysqli.query.php
Цитата:
For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
То есть закрывать ничего не надо? Вот я идиот, сразу не додумался внимательно доку прочитать. Спасибо большое. Не хватает сообщений для повышения репутации, к сожалению...

(Отредактировано автором: 26 Февраля, 2015 - 20:27:11)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB