Multiple DB Connections mit PHP

Kommentieren Mar 08 2011

 

Sollte man mal mehrere Datenbank Verbindungen in einem Script benötigen sollte man an folgendes denken:

Sind die Datenbanken auf ein und dem selben Server ( der gleiche Host ) und der Benutzer UND das Passwort sind für beide Verbindungen gleich, DANN bekommt man Probleme.
Denn DANN werden die Abfragen immer auf die letzte Verbindung angewandt, egal ob der link_identifier richtig angegeben wird oder nicht.

If you are trying to open multiple, separate MySQL connections with the same MySQL user, password, and hostname, you must set \$new_link = TRUE to prevent mysql_connect from using an existing connection.

$db1 = mysql_connect($dbhost, $dbuser, $dbpass);

$rv = mysql_select_db($dbname1, $db1);

$db2 = mysql_connect($dbhost, $dbuser, $dbpass);

$rv = mysql_select_db($dbname2, $db2);



wird zu:



$db1 = mysql_connect($dbhost, $dbuser, $dbpass);

$rv = mysql_select_db($dbname1, $db1);

$db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE);

$rv = mysql_select_db($dbname2, $db2);



Die Lösung ist also, dass man das Erstellen einer neue Verbindung erzwingt. Was nicht sehr tolle ist wenn man performance braucht. Aber da kann man ja verschiedene Benuzter anlegen.

Und so was erfährt man erster aus den Kommentaren…..