# Zwei Datenbanken abfragen bei Strato



## sandroP (26. März 2010)

Hallo,

ich möchte ein JOIN über zwei Datenbanken machen.
Mit dem Join ist soweit alles klar (datenbank1.tabelle1 JOIN datenbank2.tabelle2....)

Das Problem ist, dass ich keine Verbindung zu beiden Datenbanken gleichzeitg bekomme.


//////////////////////////////
//////Connect beider Datenbanken
/////////////////////////////

mysql_connect("rdbms.strato.de", "User1", "Passwort");
 mysql_select_db("DB1"); 

mysql_connect("rdbms.strato.de", "User2, "Passwort");
mysql_select_db("DB2");

//////////////////////////

Damit ist aber nur die Datenbank "DB2" aktiv!
Ich glaube das Problem liegt an den zwei unterschiedlichen Usern. Aber das kann
ich soviel ich weiss bei Strato nicht ändern. Wie kann ich denn sonst auf die zwei
Datenbanken gleichzeitig zugreifen?


Grüsse Sandro


----------



## Parantatatam (26. März 2010)

Dein Problem ist leicht zu lösen: du wählst einfach keine Datenbank aus sondern schreibst ein Query mit folgender Syntax:

```
`datenbank1`.`tabelle1`.`feld1` = `datenbank2`.`tabelle2`.`feld2`
```


----------



## sandroP (27. März 2010)

Erst mal Danke für die Antwort,

aber muss ich nicht die erst mit Connect eine Verbindung zur Datenbank aufbauen?
Bzw. im Query die Zugangsdaten mitgeben?


----------



## chmee (27. März 2010)

```
//Das ist der Connect!
mysql_connect("rdbms.strato.de", "User2", "Passwort");

//------------------
//Und was ist das?
//------------------
mysql_select_db("DB2");
```

mfg chmee


----------



## sandroP (27. März 2010)

Das Problem ist, dass ich zwei Datenbanken gleichzeitig Abfrage, 
bzw beide miteinander mittels Join verbinden will.

- Die Datenbanken liegen beide auf dem selben Server bei Strato.
- Haben aber verschiedene Benutzer Namen
- Die Passwörter sind identisch


Somit brauch ich doch irgendwie zwei mal den Connect!?

mysql_connect("rdbms.strato.de", "User1", "Passwort");

mysql_connect("rdbms.strato.de", "User2, "Passwort");


----------



## Parantatatam (27. März 2010)

Du brauchst nicht zweimal eine Verbindung zur Datenbank herstellen! Du brauchst nur einen Nutzer, der auf beide Datenbanken zugreifen kann. Und das *mysql_select_db()* lässt du raus und verfährst nach meinem oben angegebenen Beispiel.


----------



## sandroP (27. März 2010)

Geht leider nicht...


```
///Connect
mysql_connect("rdbms.strato.de", "U123456", "Passwort");

///zwei Datenbanken mit JOIN verbinden
$sqlab = "SELECT * FROM DB232323.land LEFT JOIN DB123456.namen ON DB232323.land.nummer = DB123456.namen.nummer";

///Query mit while-Schleife
$res = mysql_query($sqlab);
while ($zeile = mysql_fetch_assoc($res))
...
..
```


Fehlermeldung:
//Betrifft die while-Schleife//
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web6/52/39/51519739/htdocs/freiabfrage.php  on line 14

mysql_error(); sagt:
SELECT command denied to user 'U123456'@'hoon.store' for table 'land'


..................
Über ob und wie man bei Strato einen "super"User für die alle Datenbanken einrichten kann
habe ich leider noch nichts gefunden.
..................


----------



## chmee (27. März 2010)

Darf man grundsätzlich fragen, ob es nicht sinnvoller und sekundär einfacher ist, beide Datenbanken in einer zusammenzufassen, wenn es eh das gleiche (Thema) ist?

mfg chmee


----------



## sandroP (2. April 2010)

Na ja, würde schon gehen.
Das würde aber eine sehr grosse Anzahl an Tabellen pro Datenbank mit  sich bringen und 
das ganze sehr unübersichtlich machen.

Ist denn Überhaupt möglich zwei Connects gleichzeitig zu machen wenn die USER verschieden sind?


Frohe Ostern allen!


----------



## Sven Mintel (2. April 2010)

sandroP hat gesagt.:


> Ist denn Überhaupt möglich zwei Connects gleichzeitig zu machen



Gute Frage, mysql_query() verwendet *eine * Verbindung(entweder die aktuelle oder die per Argument angegebene).
Ich wäre mir daher nicht sicher, dass dies geht, lasse mich aber gerne eines Besseren belehren.


----------



## chmee (2. April 2010)

Frohe Ostern 

(1) Es geht damit massiv Performance flöten. Die ganzen Vorteile des MySQL-Systems (und der darin verborgenen Geschwindigkeit) bleiben auf der Strecke.. Erst recht, wenn Du Dich sogar als 2 verschiedene User anmelden musst.

(2) Ein bisschen stöbern Hier und in  bringt lesenswerte Infos dazu:
http://www.tutorials.de/forum/php/244501-mehrere-datenbanken-einer-mysql-verbindung-abfragen.html
http://forum.df.eu/forum/showthread.php?t=47404

mfg chmee


----------

