sql class; in einem query zwei verschiedene db's nutzen?

ohio

Erfahrenes Mitglied
guden zusamm'm,

ist es möglich eine klasse zu dudeln mit der man in einer query anweisung auf zwei verschiedenen datenbanken(also zwei cons/links, wie auch immer, nicht aber zwei databases in einer verbindung) unterbringt? mir fehlt leider das verständnis dafür, wäre nett wenn mich jemand aufklärt, danke.

gruss ohio
 
Dafür benötigst du eigentlich keine klasse.

Bisher habe ich in solchen fällen die tabellen namen in variablen festgelegt, zB so

$TABLE_users = "datenbank1.users";
$TABLE_hobbies = "datenbank2.hobbies";

jetzt kannst du zB mit folgendem query auf beide zugreifen:

SELECT h.hobby, u.nick FROM $TABLE_hobbies h, $TABLE_users u WHERE h.usrid=u.id

oder meintest du mehrere mysql-server ?
dafür müsstest du immer die verbindung mit mysql_close($conid) schliessen, und eine neue öffnen.



///// EDIT
Ok sry hätte ich besser lesen sollen

also in einem query von 2 verschiedenen mysql-servern daten ziehen, womöglich mit joins, ist afaik nicht möglich.

mit mehreren queries gehts natürlich.




gruss, david.
 
Hä?

Also wenn du mit dem selben query 2 DB´s ändern willst, dann solltest du den Query in ner Variablen speichern und nacheinander auf die DB´s anwenden.

Oder hab ich dich nur völlig missverstanden?
 
@dave, jep mit "db1.table1" war mir klar, nur scheint wohl nicht zu gehen mit mehren sql servern, schade eigentlich. sry war auch bissel komisch ausgedrückt.

// EDIT

und wie kann ich dann ne join abfrage realisieren mit zwei verschiedenen tables auf zwei mysql servern verteilt? muss ich mir da ne temp table(1.) einrichten und dann die zweite table darein joinen?


gruss ohio
 
Zuletzt bearbeitet:
wie oben beschrieben: so weit ich weiss, und soweit mir das mein technischer verstand sagt, ist es nicht möglich innerhalb von einem query auf 2 verschiedene mysql-server zuzugreifen.

da man ja immer nur eine verbindung mit php erstellen kann, wie willst du da auf 2 gleichzeitig zugreifen?

du kannst ein ergebnis in einem array speichern, die verbindung trennen, die andere verbindung öffnen und mit den werten in dem array die entsprechenden queries ausführen.
 
Man kann auch zwei Verbindungen herstellen:
PHP:
$link1 = mysql_connect("host1","user1","pass");
$link2 = mysql_connect("host2","user2","pass2");

mysql_select_db("datenbank1", $link1);
mysql_select_db("datenbank2", $link2);

Mit einem Abstraktions-Layer wie ADODB geht das recht gut!
 
kann man dann auch ein query über beide server machen?
ich denke man muss die con_id dann immer bei query mitangeben, somit wäre es wieder nicht möglich.
 
Stimmt allerdings! Wäre aber mal eine Interessante Sache nach sowas zu forschen und zu entwickeln. Dann könnte man eine verteilte programmierung der DB's machen.
 
Zurück