Mysql - 2 Datenbanken

tenso

Grünschnabel
Hallo,
hab ein prob und zwar muss ich auf 2 Mysql Datenbanken zugriffen. Beide DB liegen aufm gleichen Server.
habe es schon so versucht
PHP:
$verbindung1 = mysql_connect("localhost","root","");
$verbindung2 = mysql_connect("localhost","root","");
MYSQL_SELECT_DB("login",$verbindung1);
MYSQL_SELECT_DB("test",$verbindung2);

MYSQL_QUERY("UPDATE tabelle SET lala = 'blah'",$verbindung1) or die(mysql_error());
leider bekomm ich immer den fehler "Table 'test.tabelle' doesn't exist".
Die Tabelle "Tabelle existiert nicht... ich versteh nur nich wieso er auf die DB "test" zugreift.
Hoffe ihr könnt mir helfen.
MfG
tenso
 
Hi.

Ich vermute mal weil $verbindung1 == $verbindung2 ist. Es macht ja eigentlich auch wenig Sinn 2 Verbindungen zum selben Server aufrecht zu erhalten. Je nachdem auf welche Datenbank du zugreifen willst, rufst du halt vor dem mysql_query dann mysql_select_db auf.

Gruß
 
Hi,

Ich vermute mal weil $verbindung1 == $verbindung2 ist.

richtig, da mysql_connect() standardmäßig die schon bestehende Link-Resource zurückliefert, wenn es ein zweites Mal mit den gleichen Parametern aufgerufen wird.

Man kann über den Parameter $new_link eine neue Verbindung erzwingen:

Aus dem Manual:
new_link

If a second call is made to mysql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The new_link parameter modifies this behavior and makes mysql_connect() always open a new link, even if mysql_connect() was called before with the same parameters. In SQL safe mode, this parameter is ignored.

Du könntest aber auch einfach eine Verbindung nutzen und in Deinen Abfragen den Datenbanknamen mit angeben:

PHP:
mysql_query("UPDATE `login`.`tabelle` SET lala = 'blah'") or die(mysql_error());

LG
 
Zurück