Verbindung zu 2 Datenbanken

themonk

Erfahrenes Mitglied
Hallo
ich habe meine Daten auf 2 Datenbanken aufgeteilt und brauche nun auf mehreren Seiten Daten aus beiden Datenbanken aber ich bekomme immer nur welche von der einen und von der andern kommt ein fehler, da sie nicht verbunden ist.
Ich habe es mit Folgendem Code versucht
PHP:
<? 
  mysql_connect("localhost", 
  "user","pw") or die 
  ("Keine Verbindung moeglich"); 
  mysql_select_db("db1") or die 
  ("Die Datenbank existiert nicht"); 
  ?>

und den habe ich nochmal drunter nur mit db2. Aber jetzt wird nur db2 erkannt und db1 wird ignoriert kann mir jemand Helfen das beide Verbunden sind.
 
Warum bitte teilst du die DB,s auf? Soll das irgendeinen tieferen Grund haben? Ansonsten:

$id = mysql_connect
$id2 = mysql...

mysql_select_db('jdklf', $id);
mysql_select_db('kdjf', $id2);
 
Warum bitte teilst du die DB,s auf? Soll das irgendeinen tieferen Grund haben?
Finde es dan übersichtlicher als wenn 20 30 Tablenne in einer Datenbank sind.Und ich glaube das es dann schneller Läuft, wenn User auf die Verschieden Datenbank zugreifen als, wenn alle auf die selbe zugreifen werden. ;-)

PHP:
$id = mysql_connect
$id2 = mysql...

mysql_select_db('jdklf', $id);
mysql_select_db('kdjf', $id2);
$id steht für mysql_connect("localhost",
"user","pw") or die
("Keine Verbindung moeglich");
?
also müsste das so aussehen
$id = mysql_connect("localhost",
"user","pw") or die
("Keine Verbindung moeglich");

Dann steht mysql_select_db('jdklf', $id); für die Verbindung mysql_select_db("db1") or die
("Die Datenbank existiert nicht");

also müsste das so aussehen
mysql_select_db('db', $id);
stimmt? :confused:

Edit:
Geht aver so nicht die 1 Datenbank wird nicht Verbunden also ist es genauso wie vorher
 
Zuletzt bearbeitet:
Zitat:
Warum bitte teilst du die DB,s auf? Soll das irgendeinen tieferen Grund haben?

Finde es dan übersichtlicher als wenn 20 30 Tablenne in einer Datenbank sind.Und ich glaube das es dann schneller Läuft, wenn User auf die Verschieden Datenbank zugreifen als, wenn alle auf die selbe zugreifen werden

Rofl son schwachsinn :) Lass das was zusammen gehört in eine DB da gehörts auch in. Und es ändert sich in sachen Speed überhaupt nix.

Ansonsten geht das schon so wie ichs gepostet hab.
 
Sicaine hat gesagt.:
Rofl son schwachsinn :) Lass das was zusammen gehört in eine DB da gehörts auch in. Und es ändert sich in sachen Speed überhaupt nix.

Ansonsten geht das schon so wie ichs gepostet hab.

Aber ich habe einmal ein forum einen Chat und ein User Menü auf meiner Website. Aus allen Seiten wird die Datenbank User aus db1 gebraucht.
Und damit ich später die Übersicht zwischen dem Forum und der Website habe habe ich die datenbanken getrennt .
Ich habe jetzt den Code so bei mir eingebaut.
PHP:
<?


$id = mysql_connect("localhost",
  "user","pw") or die
  ("Keine Verbindung moeglich");
  $id2 = mysql_connect("localhost",
  "user","pw") or die
  ("Keine Verbindung moeglich");


mysql_select_db(db1, $id);
mysql_select_db(db2, $id2);


  ?>
Und das geht bei mir nicht. Es werden nur die Tabellen aus db2 gefunden.
 
Öhm du musst auch die id beim Query mitgeben is dir klar oder?

Und ansonsten nimmt man Suffixe oder Prefixe her ala forum_user oder forum_posts etc.
 
Sicaine hat gesagt.:
Öhm du musst auch die id beim Query mitgeben is dir klar oder?
Jetzt schon :p
PHP:
    $sqlkommando = "SELECT * FROM forum_$_GET[Katogorie] ";


    $sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());

    while($daten = mysql_fetch_object($sqlanfrage))


	{
Und wo muss da jetzt id bzw. id2 eingefügt werden?

muss das so aussehen
PHP:
$id -> query("SELECT * FROM forum_$_GET[Katogorie] ";)
 
http://www.php.net/mysql_query
Wer lesen kann, ist klar im Vorteil.

Btw. wenn die Datenbanken auf dem gleichen Server sind, brauchst du keine 2 Verbindungen herstellen.
Und ich muss auch nochmal wiederholen, das es absoluter Schwachsinn ist, zusammengehörige Daten in verschiedenen Datenbanken zu speichern.
 
Ab irgendeiner MySQL Version geht glaube ich auch:
Code:
SELECT * FROM datenbankname.tabellenname ...
Ansonsten werden JOINS wohl unmöglich.
Ich muss mich auch der Meinung meiner Vorredner anschließen, dass zusammengehörende Tabellen (und wenn sie nur durch eine einzige Tabelle zusammengehören) in einer Datenbank sein sollten.
Ich würde, um die Übersicht zu erhöhen meine Tabellennamen mit einem Prefix beginnen lassen:
Tabellen, die ausschliesslich zum Forum gehören heissen dann "FORUM_eigentlicherTabellenname", Tabellen, die ausschliesslich zum Chat gehören "CHAT_eigentlicherTabellenname".
Ausser Dir kommt doch kein Mensch, der sich später mal die Tabellenstruktur anguckt, darauf, dass er die User in einer anderen Datenbank suchen soll.
Und vielleicht bist Du in einem Jahr selbst irritiert, wenn Du noch mal was ändern willst.

Gruß hpvw
 
Zurück