
17.01.2010, 13:27
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Сообщение от Byrger
Есть класс работы с БД (ниже кинул начало класса)
Но вот не могу понять почему при вызове его примерно так
PHP код:
$db1 = new db(....vars.....);
$db2 = new db(....vars.....);
А потом начинаю делать запрос вида
PHP код:
$db1->query(...запос....);
$db2->query(...запос....);
ТО скрипт работает с 1 БД которая вызвана пойзже =(
Как сделать чтоб класс работал нормально с несколькими БД
PHP код:
class db {
var $sql_host;
var $sql_user;
var $sql_pass;
var $sql_base;
var $sql_charset = "utf8";
var $sql_count = 0;
var $sql_error = true;
var $link_id = 0;
function __construct($host,$user,$pass,$base,$code,$sql_error) {
$this->sql_host=$host;
$this->sql_user=$user;
$this->sql_pass=$pass;
$this->sql_base=$base;
$this->sql_charset=$code;
$this->error=$error;
$this->connect();
}
function connect() {
$this->link_id=@mysql_connect($this->sql_host,$this->sql_user,$this->sql_pass);
if(!$this->link_id) $this->error("False link == Error to connect the database");
$selecting_base=@mysql_select_db($this->sql_base,$this->link_id);
if(!$selecting_base) $this->error("Flase base == Error to select the database");
$coder_query=@mysql_query("SET NAMES '$this->sql_charset'");
if(!$coder_query) $this->error("Error set $this->sql_charset");
}
function query($query_string) {
$selecting_query=@mysql_query($query_string,$this->link_id);
$this->sql_count ++;
if(!$selecting_query) $this->error("False query == $query_string");
return $selecting_query;
}
.......
Как вариант,в классе сделать $connect[n];
Тобиш,при вызове класса, ресурс с $c = mysql_connect();,тоесть $c, зписывалось в $connect[] = $c;
А далее,делать работу таким образом:
PHP код:
functon query($query,$conn_id=0){
if(isset($this->connect[$conn_id]) & $this->connect[$conn_id]){ blablabla;
}
}
Примерно так.
|
|
|