Muszę jednocześnie odwołać się do dwóch różnych baz znajdujących się na tym samym serwerze dodam ze pracuję na ms sql.
Wygląda to mniej więcej tak:
<?php
require_once('class/mssql.class.php');
$baza2 = new MsSQL('BAZA_1');
$select = "select * from .......";
$wynik = $baza2->select_query($select);
zwórcone dane jeszcze obraciam i teraz zaczynają się schody...
unset($baza2);
$baza3 = new MsSQL('BAZA_1');
$baza_mssql = new MsSQL('BAZA_2');
poniżej wykonywana jest pętla która pobiera dane obrobione z pierwszego selecta wykonuje inserty do BAZA_2 jeszcze musi pobrać dodatkowe dane z BAZA_1 by uzupełnić inserty o aktualne dane. I tu zaczynają się problemy ponieważ tą klasę którą mam napisaną łączy się jedynie z JEDNĄ BAZĄ czyli połączenia są nadpisywane w tej kolejności połączeń jak jest pokazane wyżej połączenie z BAZA_1 nie istnieje. Poniżej załączyłem całą klasę która łączy się z bazą:
Zrobiłem jeszcze jedną rzecz skopiowałem tą klasę pod inną nazwą ale też nie pomogło jako zupełnie inny plik też nic. Jest jakiś sposób by to zrobić?
<?php class Mssql { private $db; //Konstruktor ustanawia połączenie z bazą danych //Jeśli połączenie zostanie nawiązane to zwraca wartość true, //w przeciwnym razie wartość false public function __construct($dbname='podabna nazwa na sztywno', $pass='podabna nazwa na sztywno', $user='podabna nazwa na sztywno', $host='podabna nazwa na sztywno') { //echo $dbname; $this->db = mssql_connect($host, $user, $pass); if($this->db) { if(mssql_select_db($dbname, $this->db)) return true; } else return false; } //Metoda kończy połączenie z bazą danych public function __destruct() { mssql_close($this->db); } public function ZamknijPolaczenie() { mssql_close($this->db); } //Metoda wykonująca zapytania insert, update, delete //Argumenty: Jako argument przyjmuje zapytanie SQL //Metoda zwraca rezultat wykonania zapytania public function query($query_str) { //echo $query_str.'<br/>'; $rezult = mssql_query($query_str, $this->db); return $rezult; } //Metoda wykonująca zapytanie select //Argumenty: zapytanie SQL //Metoda zwraca tablicę z danymi jeśli takowe istnieją, lub NULL w przeciwnym //wypadku public function select_query($zapytanie) { //echo $zapytanie.'<br/>'; $w = mssql_query($zapytanie, $this->db); while($row = mssql_fetch_assoc($w)) { $return[] = $row; } return $return; } } class Mssql2 { private $db; //Konstruktor ustanawia połączenie z bazą danych //Jeśli połączenie zostanie nawiązane to zwraca wartość true, //w przeciwnym razie wartość false public function __construct($dbname='podabna nazwa na sztywno', $pass='podabna nazwa na sztywno', $user='podabna nazwa na sztywno', $host='podabna nazwa na sztywno') { //echo $dbname; $this->db = mssql_connect($host, $user, $pass); if($this->db) { if(mssql_select_db($dbname, $this->db)) return true; } else return false; } //Metoda kończy połączenie z bazą danych public function __destruct() { mssql_close($this->db); } public function ZamknijPolaczenie() { mssql_close($this->db); } //Metoda wykonująca zapytania insert, update, delete //Argumenty: Jako argument przyjmuje zapytanie SQL //Metoda zwraca rezultat wykonania zapytania public function query($query_str) { //echo $query_str.'<br/>'; $rezult = mssql_query($query_str, $this->db); return $rezult; } //Metoda wykonująca zapytanie select //Argumenty: zapytanie SQL //Metoda zwraca tablicę z danymi jeśli takowe istnieją, lub NULL w przeciwnym //wypadku public function select_query($zapytanie) { //echo $zapytanie.'<br/>'; $w = mssql_query($zapytanie, $this->db); while($row = mssql_fetch_assoc($w)) { $return[] = $row; } return $return; } } ?>