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 :: Вылезают ошибки при повторном использовании функции созданного класса

 PHP.SU

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


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

> Без описания
Freedom
Отправлено: 26 Марта, 2011 - 15:05:50
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2007  


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




Есть класс:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class MySQL {
  4.  
  5. private $host="localhost";
  6. private $user="root";
  7. private $password="vertrigo";
  8. private $db_name="opros";
  9. private $charset="utf8";
  10. private $mysql_link;
  11.  
  12. function __construct ()
  13. {
  14.  
  15. $this->mysql_link= @mysqli_connect ($this->host,$this->user,$this->password,$this->db_name);
  16.         {
  17.                 echo "Ошибка подключения к базе данных: №<strong>".mysqli_connect_errno()."</strong>";
  18.                 exit;
  19.         }
  20. mysqli_set_charset ($this->mysql_link,$this->charset);
  21. }
  22.  
  23.  
  24. public function getName ($id)
  25. {
  26. $stmt = mysqli_prepare($this->mysql_link, "SELECT `name` FROM `opros` WHERE id_opros= ?");
  27. mysqli_stmt_bind_param($stmt,"i",$id);
  28. mysqli_close($this->mysql_link);
  29. return $name;
  30. }
  31.  
  32.  
  33. public function getVopros ($id)
  34. {
  35. $stmt = mysqli_prepare($this->mysql_link, "SELECT `name`,`obyaz`,`type` FROM `vopros` WHERE id_opros= ?");
  36. mysqli_stmt_bind_param($stmt,"i",$id);
  37. $vopros=array();
  38. mysqli_stmt_bind_result($stmt,$row["name"], $row["obyaz"], $row["type"]);
  39. while(mysqli_stmt_fetch($stmt))
  40.         {$vopros[]=$row;
  41.         mysqli_stmt_bind_result($stmt,$row["name"], $row["obyaz"], $row["type"]);
  42.         }
  43. mysqli_close($this->mysql_link);
  44. return $vopros;
  45. }
  46. }
  47. ?>


При вызове одной из функций все нормально работает. Но если вызвать любые две функции подряд, то выходит ошибка: Warning: mysqli_prepare() [function.mysqli-prepare]: Couldn't fetch mysqli in ... ну и ещё несколько (равное количеству функций с участием $stmt).
Вопрос: в чём ошибка? Может не происходит обнуление? Но вроде в каждой функции подчищаю. Подскажите что не так.
 
 Top
OrmaJever Модератор
Отправлено: 26 Марта, 2011 - 15:49:24
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Проблема скорее всего в этом

После вызова первой функции соединение закрывается.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Freedom
Отправлено: 26 Марта, 2011 - 15:50:49
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2007  


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




да, спасибо! Заработал.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB