Mit PHP Zugriff auf zwei Datenbanken

webdoktor

Angesehenes Mitglied
Hallo zusammen

Ich habe eine kleine Frage und zwar habe ich neu zwei Datenbanken früher hatte ich nur
eine (test_test1) und konnte mich so verbinden.


@mysql_connect("localhost", "test","passwort_test") or die ("Keine Datenbankverbindung moeglich");
mysql_select_db("test_test1") or die ("Die Datenbank existiert nicht");


schön und gut.. dann machte ich einfach abfragen wie z.b:

$abfrage_24 = "SELECT * FROM Daten WHERE kategorie LIKE '24' AND status LIKE '0'";
$ergebnis_24 = mysql_query($abfrage_24);
$anzahl_zeilen_24 = mysql_num_rows($ergebnis_24);

schön und gut nun habe ich eine zweite Datenbank (test_test2)

wie mache ich das nun, dass ich mich auch mit dieser verbinden kann und diese dann auch abfragen
kann.

huiii - freue mich auf eure hilfe :)

Marco
 
IMHO ist das in ein und derselben Datei nicht möglich... der müsste ja irgendeinen Fehler ausgeben alá "already connected" oder so.
 
ich habs webdoc zwar schon per email gesagt.

aber damit man es hier auch lesen kann. ich löse das gleiche prob immer so.


Dat wäre zb mysql_conf.php
CODE
// Verbindung mit MySQL-Datenbank herstellen

// MySQL-Connect-Daten
$db_server = "localhost"; // Server
$db_user = "benutzer"; // Benutzer
$db_pwd = "pw"; // Passwort
$db_name = "db1"; // Datenbankname

// Verbindung herstellen, wenn nicht erfolgreich -> scrpt abbrechen
$db = @mysql_connect($db_server, $db_user, $db_pwd) or die ("Konnte Verbindung zum MySQL-Server nicht herstellen!");
// Datenbank auswählen, wenn nicht erfolgreich -> Script abbrechen
@mysql_select_db($db_name) or die ("Konnte Datenbank nicht finden!<br>" . mysql_error());

//unset ($db_server);
//unset ($db_user);
//unset ($db_pwd);
//unset ($db_name);


$fdb_server = "localhost"; // Server
$fdb_user = "benutzer"; // Benutzer
$fdb_pwd = "pw"; // Passwort
$fdb_name = "db2"; // Datenbankname

// Verbindung herstellen, wenn nicht erfolgreich -> scrpt abbrechen
$fdb = @mysql_connect($fdb_server, $fdb_user, $fdb_pwd) or die ("Konnte Verbindung zum MySQL-Server nicht herstellen!");
// Datenbank auswählen, wenn nicht erfolgreich -> Script abbrechen
@mysql_select_db($fdb_name) or die ("Konnte Datenbank nicht finden!<br>" . mysql_error());




und hier wäre die db abfrage zb für ne userId

CODE
$sql = "SELECT * FROM `user`
WHERE
`id` = '" . $auth_user . "'
&#59;";
$res = mysql_query ($sql, $db); // $db verbindung mit db1
$row = mysql_fetch_object ($res);
$useruid1 = $row->uid;

$sql = "SELECT * FROM `user`
WHERE
`id` = '" . $auth_user . "'
&#59;";
$res = mysql_query ($sql, $dbf); // $dbf verbindung mit db2
$row = mysql_fetch_object ($res);
$useruid2 = $row->uid;

 
alles zu umständlich, mysql transaktionen werden immer über sogenannte "handles" durchgeführt.
mysql_connect gibt ein resource handle zurück über dass man dann queries absetzen kann.

CODE

$db1 = mysql_connect(.........);
$db2 = mysql_connect(.........);


$res1 = mysql_query('select....', $db1);
$res2 = mysql_query('select....', $db2);




noch einfacher gehts natürlich z.b. mit einem db abstraction layer wie pdo, oder so
 
naja viel anders als deine lösung sven is meine auch ned
laugh.gif

nur hab ich halt variablen drinn du direkt
 
QUOTE (Eric-Oliver Mächler @ Fr 26.10.2007, 16:37) naja viel anders als deine lösung sven is meine auch ned
laugh.gif

nur hab ich halt variablen drinn du direkt

Sauberer wäre mysql_select_db ($Datenbankname, $Verbindungs-Kennung)
 
@Eric-Oliver Mächler: wo ich jetzt genauer hinseh muss ich dir recht geben, mich haben nur die vielen unsets und kommentare verwirrt, sry
smile.gif
 
Aber natürlich geht das. Du kannst problemlos mehrere Datenbanken anbinden. Einfach mal im PHP Manual nachgucken (Auch die Kommentare beachten).

Sofern die PHP-Version genug aktuell ist, unbedingt PDO anschauen. Ist eine sehr feine Sache..
 
Zurück
Oben