Ankündigung

Einklappen
Keine Ankündigung bisher.

Zwei Datenbankverbindungen gleichzeitig?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zwei Datenbankverbindungen gleichzeitig?

    Hallo,

    ich habe zwei Datenbanken. Eine für ein Forum, eine andere für eine Homepage. Jetzt möchte ich z.B., dass Forummitglieder sich auch auf der Homepage einloggen können, um auf der Homepage auch interaktiv zu sein. Ist es möglich in einem php-Script zu beiden Datenbanken gleichzeitig eine Verbindung zu haben, oder muss man immer erst eine Verbindung schließen, um eine neue Verbindung zu der anderen Datenbank herzustellen? Oder ist es klüger alles über eine Datenbank laufen zu lassen (was mir aber nicht gefällt, da ich der Ordnung wegen gerne Forum und Homepage trennen will)?


    Gruß

  • #2
    SELECT * FROM datenbank1.tabelleForum
    SELECT * FROM datenbank2.tabelleHomepage

    Solang die Datenbanken auf dem selben Server mit den selben Zugriffsrechten liegen, kein Problem, musst nichtmal eine neue Verbindung aufbauen (kannst du dann auch garnicht, bekommst die selbe Connection zurückgeliefert).

    Kommentar


    • #3
      Kann ich auch Daten aus beiden Datenbanken (in einer Abfrage) miteinander vergleichen?

      Kommentar


      • #4
        Überleg mal selbst ob die Frage klug war und probiers aus!

        Kommentar


        • #5
          PHP-Code:
          <?php
          mysql_connect
          ("localhost","root","");
          mysql_select_db("db2");
          mysql_select_db("db1");

          $abfrage "SELECT * FROM db2.phpkit_user A, db1.user B WHERE A.user_id=B.userid ORDER BY A.user_id";
          $ergebnis mysql_query($abfrage);

          while(
          $row mysql_fetch_object($ergebnis))
          {
              echo 
          $row->user_name;
              echo 
          $row->username;
          }

          ?>
          Das funktioniert . Ist das "mysql_select_db("db2"); mysql_select_db("db1");" überflüssig, da es auch ohne geht?

          Angenommen die Feldnamen für den Usernamen wären gleich, wie löse ich dann die Ausgabe der Usernamen beider Tabellen?
          Ich habe das probiert: "echo $row->A.user_name; echo $row->B.username;". Dann führt dies zur Ausgabe von "user_nameusername" .

          Kommentar


          • #6
            mysql_select_db() macht nur 1x Sinn.
            Der letzte Aufruf von mysql_select_db() ist entscheidend und wird als Standard-Datenbank genommen, also wenn du keine explizit auswählst.

            Was du mit deinem letzten Satz meinst habe ich nicht verstanden!
            Auf Sternchen * solltest du aber sowieso verzichten, aus genau den Gründen die wahrscheinlich dein Problem verursachen. Schreib die Spaltennamen explizit hin, also SELECT A.user_id, A.username, ..., B.foo, B.bar FROM

            Kommentar


            • #7
              Auch wenn ich die Spaltennamen explizit hinschreibe funktioniert es nicht.

              echo $row->A.user_name;
              echo $row->B.username;

              Ausgegeben wird: user_nameusername statt Name1Name2

              Kommentar


              • #8
                Benutz ALIAS in MySQL und lern Grundlagen. Keine Lust kettenweise deine Probleme zu lösen, ohne dass du selbst mal ein bißchen Zeit damit verbringst.

                Kommentar


                • #9
                  Hab eine andere Lösung für das Problem gefunden. Heute nerve ich auch nicht mehr .

                  Kommentar


                  • #10
                    und was für eine?

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php 
                      mysql_connect
                      ("localhost","root",""); 
                      mysql_select_db("db2"); 
                      mysql_select_db("db1"); 

                      $abfrage "SELECT A.username AS username1, B.username AS username2 FROM db2.phpkit_user A, db1.user B WHERE A.user_id=B.userid ORDER BY A.user_id"
                      $ergebnis mysql_query($abfrage); 

                      while(
                      $row mysql_fetch_object($ergebnis)) 

                          echo 
                      $row->username1
                          echo 
                      $row->username2


                      ?>
                      Das als Beispiel, wenn in beiden Tabellen der Datenbanken der Feldname identisch ist.

                      Kommentar


                      • #12
                        mysql_select_db("db2");
                        mysql_select_db("db1");

                        das folgt doch dazu das du einfach db1 selektierst, man kann doch nicht 2 selektieren, oder irre ich mich da?

                        2dbs abrfagen (auf dem gleichen Server) kann man doch mittels dem SQL Statement machen.

                        Kommentar


                        • #13
                          Hatte ich auch schon erwähnt

                          Kommentar


                          • #14
                            War ein Schreibfehler von mir. Das passiert bei Copy&Paste ...

                            Kommentar

                            Lädt...
                            X