Автор Тема: Два коннекта одновременно  (Прочитано 16908 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stek

  • Обожатель PHP
  • Ветеран
  • *****
  • Сообщений: 532
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.phpdevs.com
Два коннекта одновременно
« Ответ #15 : 04 Сентября 2002, 15:06:12 »
Croaker
Ну у меня класс немного посложнее будет, но все равно, зубоскальство Ромика не понимаю.
Ты особо на этого гения программирования внимания не обращай, он по жизни такой. Я уже несколько раз просил его привести примеры на свои работы, свои скриптики выложить, так сказать, показать народу как правильно кодить надо - так ведь молчит, ныкается, не хочет знаниями делится, уж больно страшно наверное ему свой потенциал раскрывать :D
PHP без башни - сделай свою жизнь разнообразнее.
Разбираю скрипты, собираю заново, вытираю пыль с баз данных.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Два коннекта одновременно
« Ответ #16 : 04 Сентября 2002, 15:08:08 »
Цитировать
Ну, и я, конечно, не понимаю, зачем городить такой класс там, где он вообще не нужен


Конечно лучше писать каждый раз

$con_asm 
mysql_connec(...);
$mysql_select_db("asmodai"$con_asm);

и при каждом запросе ...

$asm_sql 
"SELECT * FROM table";
$asm_result mysql_query($asm_sql$con_asm);
$row mysql_fetch_row($asm_result);

чем


[PHP]
$obj->db_connect_asm();
	


#и соответственно

$obj->db_sql_asm "select * from owner_t limit 1 ";
$obj->db_query_asm();
$row $obj->db_result_asm;



и не путать (путаься) - к какой базе (именно базе - а не серверу) обращатьсяб по какому con_id и какой запрос посылать.

При всем при том, что чтобы посмотреть скажем запрос, можно просто написать $obj->show_asm_query();

Хотя, конечно, хозяин-барин и можно писать постоянно print($sql_query), $result = mysql_query() ... и т.д.

Цитировать
лишь тем, что для нее не надо изобретатьспециальный класс

тут вообще-то только один класс для обеих баз....

Цитировать
$obj->db_sql = "select * from owner_t limit 1 ";
$obj->db_conn = "asm";
$obj->db_query();


а вот тут вторую строчку, я, признаюсь вообще не понял....
Не все коту матрица.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Два коннекта одновременно
« Ответ #17 : 04 Сентября 2002, 15:13:38 »
Stek
ну.. то, что я выложил - еще до конца не готово, в процессе.
а наш добрый друг просто зубосклит не в первый раз... обыдно, да?
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #18 : 04 Сентября 2002, 15:24:01 »
Вообще нет, не так.
Если по-человечески делать, то сделать абстрактный класс db, а уже на его основе порождать конкретные классы под каждый коннект.
Надо тебе один - породил одного.
Надо три - породил трех.
НЕ МЕНЯЯ при это базовый класс каждый раз. Наследование, однако.

Ну а вот этим
Цитировать
Конечно лучше писать каждый раз
$con_asm = mysql_connec(...);
$mysql_select_db("asmodai", $con_asm);

Ты меня, как всегда, рассмешил.
Как будто это кто-то пишет каждый раз :-))))

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #19 : 04 Сентября 2002, 15:27:51 »
А то, что ты сейчас написал - это сплошное ДУБЛИРОВАНИЕ, отказаться от которого и должно помогать ООП.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Два коннекта одновременно
« Ответ #20 : 04 Сентября 2002, 15:34:32 »
Может еще объяснишь три несмешные человеческие строчки:


$obj
->db_sql "select * from owner_t limit 1 "
$obj->db_conn "asm"
$obj->db_query();



?
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #21 : 04 Сентября 2002, 16:05:29 »
Значит, так.
Делаешь ОДИН класс.
в нем дублируешь функции mysql - раз уж тебе так этого сильно хочется.
Дальше пишешь. В файле, который инклюдишь, чтобы не писать в каждом скрипте.
$obj = new MysqlClass();
$obj->connect(host,user,pass,db,"asm");
$obj->connect(host1,user1,pass1,db1,"dbg");

Дальше в своем скрипте пишешь
$obj->db_sql = "select * from owner_t limit 1 ";
$obj->db_query("asm");
while($owner_asm = mysql_fetch_array($obj->db_result("asm")))  {
  print $owner_asm[\'fio_contact\']."\\n\\n";
}
$obj->db_close("asm");

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Два коннекта одновременно
« Ответ #22 : 04 Сентября 2002, 16:18:07 »
теоретически - мы следуем философии ООП, bla-bla-bla bla-bla-bla

фактически -

строчка
$obj->db_query_asm()
превращается в
$obj->db_query("asm")

+ скрипт становится менее гибким (как-то: зачем-то отдельный инклуд для коннекта, невозможность (или возможность, но кривая)оперировать сразу  двумя запросами к двум базам....).

Удобней ничего не стало, а вот флуда на форуме стало больше.
Не все коту матрица.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #23 : 04 Сентября 2002, 18:20:46 »
Нет проблем.
Если ты хочешь ЖЕСТКО коннектиться к одной базе всю жизнь - забивай коннект к ней в основной класс :-)
(Ко второй - тоже. А то ж ведь, поймешь буквально...)

Ну а насчет гибкости - она меньше не стала.
Нет проблем оперировать запросами к двум базам.
В конце концов способов можно найти много. Нормальных.
А писать одинаковые процедуры по числу используемых баз - это не ООП. Это цирк папуасский.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #24 : 04 Сентября 2002, 18:41:05 »
Эх, я тормознул, блин :-)
Все, конечно, не так :-)
В общем-то, я правильно написал в 14:24, но потом меня в другую сторону унесло.

Оффлайн Antoxa

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 64
  • +0/-0
  • 0
    • Просмотр профиля
Два коннекта одновременно
« Ответ #25 : 04 Сентября 2002, 18:43:49 »
сделать надо так :)


class AAbstractDb {
	
var 
$classname = \'AAbstractDb\';
	
var $conn;
	
var $errno;
	
var $error;
	
var $hostname; 
	
var $username;
	
var $password;
	
var $dbname;
	
var $res;

	
function AAbstractDb ($hostname = "localhost", $username = "", $password = "", 
	
	
	
	
	
	
  $dbname = "", $connected = true, $persistent = false) {
	
	
$this->hostname = $hostname;
	
	
$this->username = $username;
	
	
$this->password = $password;
	
	
$this->dbname = $dbname;
	
	

	
	
if($connected) {
	
	
	
$this->conn = $this->connect($persistent);
	
	
}
	
}

// тырым-пырым

};

class ADBMysql extends AAbstractDb {

	
function ADBMysql ($hostname, $username, $password, $dbname, $connected = true, $persistent = false) {
//
	
	
if(! extension_loaded("mysql.so")) {
//
	
	
	
dl("mysql.so");
//
	
	
}

	
	
$this->AAbstractDb($hostname, $username, $password, $dbname, $connected, $persistent);
	
}

// и т.д.

}


а потом просто
$db1 = new ADBMysql (HOST1, USER1, USER_PW1, DB_NAME1);
$db2 = new ADBMysql (HOST2, USER2, USER_PW2, DB_NAME2);

и делать свои запросы... и не е..ть мозги


спасибо за внимание
AnToXa - born programmer

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #26 : 04 Сентября 2002, 22:23:36 »
Ну и развели ж флейма...

RomikChef:
Цитировать

Доктор, а теперь расскажи нам, как ты коннектишься к database в mysql, и какой connection id тебе возвращает?


Это что за такой вумный вопрос? Блин, наверное, в нем какая-нить подковырка... Сейчас буду соображать какая, а ты пока перечитай, что я написал...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #27 : 04 Сентября 2002, 22:48:22 »
Доктор, да нечего перечитывать.
Человек написал, что коннектится к базам!
Я попросил его быть корректнее в формулировках. Все!
А ты влез, непонятно, зачем.

Оффлайн Dm

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1263
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #28 : 04 Сентября 2002, 23:29:11 »
Хочу обратить внимание, что ровно тот вопрос, который был задан в самом начале описан конкретно в мане php :)
с уважением,
магистр белой магии.

Оффлайн Доктор

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 487
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Два коннекта одновременно
« Ответ #29 : 04 Сентября 2002, 23:47:03 »
[OFF]
RomikChef
Вообще, лично я не люблю, когда придираются в формулировкам. Сформулировать хреново можно и случайно. А ты сразу едко начинаешь к формулировкам придираться. Надо смотреть и стараться понять, что человек имел в виду, даже если формулировка неудачная, а уже потом придираться именно к этому, если получится :) Например, твои придирки к классу в этом же треде вполне в тему, а там были не в тему.[/OFF]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28