Witam mam mały problem mam skrypt który korzysta z trzech baz danych założenie było takie żeby podczas wykonywania skryptu były maksymalnie trzy połączenia z bazą dlatego chciałem zimplementować wzorzec singleton dl a każdej z baz jednak problem jest taki że podczas wywołania klasy z połączeniem do drugiej bazy połączenie z pierwszą zostaje przerwane po niżej przykładowy kody
class db_portal extends db{
private function __construct() {
$cfg['db']['host']='localhost';
$cfg['db']['user']='xxxxxx';
$cfg['db']['password']='xxxxx';
$cfg['db']['name']='xxxxxx';
$this->conn_id = mysql_connect($cfg['db']['host'],$cfg['db']['user'],$cfg['db']['password']); mysql_query("SET collation_connection = utf8_unicode_ci"); return false;
}
}
static public function connect_db
() { $objDB = new db_portal;
return $objDB;
}
}
class db_portal2 extends db{
private function __construct() {
$cfg['db']['host']='localhost';
$cfg['db']['user']='xxxxxx';
$cfg['db']['password']='xxxxx';
$cfg['db']['name']='xxxxxx';
$this->conn_id = mysql_connect($cfg['db']['host'],$cfg['db']['user'],$cfg['db']['password']); mysql_query("SET collation_connection = utf8_unicode_ci"); return false;
}
}
static public function connect_db
() { $objDB = new db_portal2;
return $objDB;
}
}
$DB=db_portal::connect_db();
//zapytania z bazy 1
$DB2=db_portal2::connect_db();
// zapytania z bazy 2
$DB->query($SQL);
//problem objekt $DB istnieje ale niema już połączenia z bazą przez co zapytanie się nie wykonuje
//nie pomaga nawet dodanie linii wcześniej $DB=db_portal::connect_db();
Klasa db to standardowa klasa mająca metody typu query fetch itp
Ma ktoś pomysł jak można to rozwiązać

?
Z góry dzięki za sugestie.
Ten post edytował patryczakowy 22.01.2011, 08:07:27
Sztuką jest widzieć to czego nie widać.