Ankündigung

Einklappen
Keine Ankündigung bisher.

2 Datenbanken gleichzeiti in einer php-datei abfragen und Werte anzeigen

Einklappen

Neue Werbung 2019

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

  • 2 Datenbanken gleichzeiti in einer php-datei abfragen und Werte anzeigen

    kann man in einer php datei auf 2 Datenbanken gleichzeitig zugreifen?

    Ich möchte in einer Tabelle von zwei Datenbanken Werte darstellen

    Datum | Wert-DB1 | Wert-DB2

    habe mit
    PHP-Code:
    // Verbindung mit MySQL-Server
    @mysql_connect($server$benutzer$passwort)
        or die (
    'keine Verbindung');
    // Mit Datenbank verbinden
    @mysql_select_db($datenbank)
        or die (
    'keine Datenbank gefunden'); 
    Zugriff zur 1 Datenbank und dann die SELECT dafür
    $liste = 'SELECT TAB1 FROM TAB1;

    Wie bekomme ich das GLEICHZEITIG für 2. Datenbank hin?
    Software kann so schön sein - wenn sie dann mal geht...


  • #2
    Du kannst in deinen Queries mit Hilfe von "db-name.table-name" auf Tabellen innerhalb anderer Datenbanken zugreifen. Also

    Code:
    SELECT * FROM dbA.user LEFT JOIN dbB.user ...

    Kommentar


    • #3
      Die älteste der drei mysql-Erweiterungen ist veraltet (mysql_*-Funktionen, nicht die MySQL-Datenbank) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
      Choosing an API
      Warum man mysql* generell nicht (mehr) nutzen sollte.
      Wie man von mysql* auf PDO umsteigt
      Wissenswertes zum Thema SQL-Injection
      Standards - Best Practices - AwesomePHP - Guideline für WebApps

      Kommentar


      • #4
        Also mach ich vorher:

        PHP-Code:
        // Verbindung mit MySQL-Server
        @mysql_connect($server$benutzer$passwort) or die ('keine Verbindung');
        @
        mysql_connect($server$benutzer1$passwort1) or die ('keine Verbindung');

        // Mit Datenbank verbinden
        @mysql_select_db($datenbank) or die ('keine Datenbank gefunden');
        @
        mysql_select_db($datenbank1) or die ('keine Datenbank gefunden'); 
        und dann in der Abfrage:

        wo definiere ich, dass dbA und dbB von den beiden $datenbank & $datenbank1 her kommt?
        Software kann so schön sein - wenn sie dann mal geht...

        Kommentar


        • #5
          Das select_db ist nicht nötig. Das setzt nur die aktuelle Datenbank, die quasi genutzt wird wenn du in den Queries keine angibst. Du kannst dbA und dbB direkt mit dem Namen der Zieldatenbank ersetzen.

          EDIT:
          oder liegen die Datenbanken auf unterschiedlichen Servern? Dann geht das so nicht.

          Kommentar


          • #6
            Zitat von cycap Beitrag anzeigen
            Das select_db ist nicht nötig. Das setzt nur die aktuelle Datenbank, die quasi genutzt wird wenn du in den Queries keine angibst. Du kannst dbA und dbB direkt mit dem Namen der Zieldatenbank ersetzen.

            EDIT:
            oder liegen die Datenbanken auf unterschiedlichen Servern? Dann geht das so nicht.
            Also schreibe ich dann so:

            PHP-Code:
            SELECT $datenbank.wert,$datenbank1.wert  FROM $datenbank.tabelle1 LEFT JOIN $datenbank1.tabelle1 ... 
            Software kann so schön sein - wenn sie dann mal geht...

            Kommentar


            • #7
              Wenn die Datenbanken auf dem gleichen Server liegen und du mit einem User auf beide Zugriff hast dann ja. Vorrausgesetzt deine Variablen im Beispiel beinhalten nur den Datenbank-Namen als String.

              Kommentar


              • #8
                Zitat von cycap Beitrag anzeigen
                Wenn die Datenbanken auf dem gleichen Server liegen und du mit einem User auf beide Zugriff hast dann ja. Vorrausgesetzt deine Variablen im Beispiel beinhalten nur den Datenbank-Namen als String.
                Die Variablen $Datenbank und $Datenbank1 sind 'db_10003' & 'db_10002'
                Software kann so schön sein - wenn sie dann mal geht...

                Kommentar


                • #9
                  Dann sollte das klappen unter den o.g. Voraussetzungen. Es muss allerdings dbname.TABELLE.spalte heißen in deinem Select

                  Kommentar

                  Lädt...
                  X