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

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

1. Freedom - 26 Марта, 2011 - 15:05:50 - перейти к сообщению
Есть класс:
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).
Вопрос: в чём ошибка? Может не происходит обнуление? Но вроде в каждой функции подчищаю. Подскажите что не так.
2. OrmaJever - 26 Марта, 2011 - 15:49:24 - перейти к сообщению
Проблема скорее всего в этом

После вызова первой функции соединение закрывается.
3. Freedom - 26 Марта, 2011 - 15:50:49 - перейти к сообщению
да, спасибо! Заработал.

 

Powered by ExBB FM 1.0 RC1