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]   

> Без описания
ph3n
Отправлено: 15 Июля, 2012 - 15:37:06
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2012  


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




Не понял начал изучать ООП, ну и пробую писать в эту сторону.

MySQLController.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class MySQLController
  3. {
  4.     private $host;
  5.     private $user;
  6.     private $pass;
  7.     private $db_cms;
  8.     function __construct($host,$user,$pass,$db_cms)
  9.     {
  10.         $this->host = $host;
  11.         $this->user = $user;
  12.         $this->pass = $pass;
  13.         $this->db_cms = $db_cms;
  14.     }
  15.    
  16.     function enableMySQL()
  17.     {
  18.         mysql_connect($this->host, $this->user, $this->pass) or die("Ошибка соединения". mysql_error());
  19.         mysql_select_db($this->db_cms);
  20.     }
  21.    
  22.     function setQuery($query)
  23.     {
  24.         $q = mysql_query($query);
  25.     }
  26. }
  27. $mysql = new MySQLController($db['host'], $db['user'],$db['pass'], $db['db_cms']);
  28. ?>

Вот написал маленький класс, но увы ни коннекта к базе, ни запрос не работает.
Что не тут не так? :c
 
 Top
OrmaJever Модератор
Отправлено: 15 Июля, 2012 - 16:32:40
Post Id



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


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


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




Может стоит вызвать те методы в которых это происходит? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Andrusa95
Отправлено: 15 Июля, 2012 - 16:44:57
Post Id



Новичок


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


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




Попробуйте посмотреть в сторону класса PDO. В ответ на Ваш вопрос попробуйте вызвать метод enableMySQL() в методе setQuery() перед функцией mysql_query().


-----
Знание есть сокровище, но хранитель его — разум.

Пенн Вильям
 
 Top
Stierus Супермодератор
Отправлено: 16 Июля, 2012 - 13:35:24
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




а что вы ожидаете от этого кода?
 
My status
 Top
Volter9
Отправлено: 20 Июля, 2012 - 09:06:57
Post Id


Новичок


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


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




Так-то не плохо, вот только как-то не солидненько, вот мой пример класса:
PHP:
скопировать код в буфер обмена
  1. <?
  2.         public class DB {
  3.                 const LAST_QUERY = 0;
  4.        
  5.                 private var $mysql
  6.                 private var $query;
  7.                
  8.                 private var $queries;
  9.                 private var $currentDB;
  10.                
  11.                 private var $host;
  12.                 private var $dbnames;
  13.                 private var $username;
  14.                 private var $password;
  15.                
  16.                 protected static $instance;
  17.                
  18.                 private function __construct() {}
  19.                 private function __clone() {}
  20.                 private function __wakeup() {}
  21.                
  22.                 static function getDB() {
  23.                         if (self::$instance == NULL) {
  24.                                 self::$instance = new DB();
  25.                         }
  26.                         return self::$instance = new DB();
  27.                 }
  28.                
  29.                 functions init($host, $username, $password) {
  30.                         $this->host = $host;
  31.                         $this->username = $username;
  32.                         $this->password = $password;
  33.                 }
  34.                
  35.                 function connect() {
  36.                         $this->mysql = mysql_connect($this->host, $this->username, $this->password);
  37.                 }
  38.                
  39.                 function selectDB($dbname) {
  40.                         if (empty($this->dbnames[$dbname])) {
  41.                                 $this->dbnames[$dbname] = $dbname;
  42.                         }
  43.                         if ($this->currentDB != $db) {
  44.                                 $this->currentDB = $dbname;
  45.                         }
  46.                
  47.                         mysql_select_db($this->dbnames[$dbname], $this->mysql);
  48.                 }
  49.                
  50.                 function query($query,$key) {
  51.                         $this->query = mysql_query($query, $this->mysql);
  52.                         $this->queries[$currentDB][$key] = $this->query;
  53.                 }
  54.                                
  55.                 function fetchArray($marker,$key) {
  56.                         switch ($marker) {
  57.                                 case:"A"
  58.                                         return mysql_fetch_assoc($this->queries[$currentDB][$key]);
  59.                                 break;
  60.                                
  61.                                 case:"I"
  62.                                         return mysql_fetch_row($this->queries[$currentDB][$key]);
  63.                                 break;
  64.                                
  65.                                 case:"AI"
  66.                                         return mysql_fetch_array($this->queries[$currentDB][$key]);
  67.                                 break;
  68.                                
  69.                                 default:
  70.                                         echo("MySQL #".mysql_errno()."ошибка:".mysql_error());
  71.                                 break;
  72.                         }
  73.                 }
  74.                
  75.                 function close() {
  76.                         mysql_close($this->mysql);
  77.                 }
  78.         }
  79. ?>
 
 Top
PATCH
Отправлено: 20 Июля, 2012 - 10:05:33
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


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




не проще ли замест

PHP:
скопировать код в буфер обмена
  1.                 private var $mysql
  2.                 private var $query;
  3.                
  4.                 private var $queries;
  5.                 private var $currentDB;
  6.                
  7.                 private var $host;
  8.                 private var $dbnames;
  9.                 private var $username;
  10.                 private var $password;

так

PHP:
скопировать код в буфер обмена
  1.  
  2. private $mysql ,
  3.            $query,
  4.            $queries,
  5.            $currentDB,
  6.            $host,
  7.            $dbnames,
  8.            $username,
  9.            $password  ;
  10.  
  11.  

?

(Отредактировано автором: 20 Июля, 2012 - 10:10:56)

 
 Top
Stierus Супермодератор
Отправлено: 20 Июля, 2012 - 10:53:12
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




Я PDO использую довольно давно и не понимаю таких извращений Улыбка
 
My status
 Top
PATCH
Отправлено: 20 Июля, 2012 - 11:01:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


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




Stierus пишет:
Я PDO использую довольно давно и не понимаю таких извращений
и в чем тут извращение? пишем дискриптор а дальше через запятую перечисляем свойства которые относятся к даному дискриптору , для больше красоты их можно выставить в столбик , на офицальном сайте php даже в примерах указан дискриптор и через запятую перечисление свойств объекта ( http://php.net/manual/en/language.oop5.php ) , по мне так извращение постояно писать дискриптор затем var и только 1 свойство объекта , учитывая что это var ушло глубоко в историю начиная с php5..

(Отредактировано автором: 20 Июля, 2012 - 11:02:11)

 
 Top
Stierus Супермодератор
Отправлено: 20 Июля, 2012 - 11:12:26
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




var уже нотисы плюет при использовании, это атавизм Улыбка

Такой синтаксис нормален, единственный минус - не все IDE его пока понимают.

Под извращением я имел ввиду написание своих классов для работы с БД, которые по сути являются корявой заменой PDO, жалким намеком на ORM, смысл использования которых в php довольно сомнителен.
 
My status
 Top
DelphinPRO
Отправлено: 20 Июля, 2012 - 12:30:08
Post Id



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


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


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




Stierus пишет:
Под извращением я имел ввиду написание своих классов для работы с БД, которые по сути являются корявой заменой PDO, жалким намеком на ORM, смысл использования которых в php довольно сомнителен.

поддерживаю на 100%
только я юзаю mysqli


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Volter9
Отправлено: 20 Июля, 2012 - 17:34:24
Post Id


Новичок


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


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




Как хотите. Я просто Пример привел.
 
 Top
PATCH
Отправлено: 20 Июля, 2012 - 20:41:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011  


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




Stierus пишет:
var уже нотисы плюет при использовании, это атавизм Улыбка

Такой синтаксис нормален, единственный минус - не все IDE его пока понимают.

Под извращением я имел ввиду написание своих классов для работы с БД, которые по сути являются корявой заменой PDO, жалким намеком на ORM, смысл использования которых в php довольно сомнителен.
аа понятно я думал ты про такую запись имел ввиду) Радость
 
 Top
ph3n
Отправлено: 20 Июля, 2012 - 23:17:00
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2012  


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




Подумал я на досуге, зачем изобретать велосипед, если есть mysqli/PDO
 
 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