[PHP5] Verbindung zu mehreren Datenbanken gleichzeitig herstellen

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

  • [PHP5] Verbindung zu mehreren Datenbanken gleichzeitig herstellen

    Hallo,

    ich habe eine Webseite in der 3 Datenbanken eingebunden sind. Mit der Version PHP4.2 kann man die Verbindung zu mehreren Datenbanken öffnen.

    Zum Anbinden habe ich für jede Datenbank eine Verbindungvariable mit den Logindaten angelegt:

    $conn1 = mysql_connect(server1, user1, passwort1, TRUE);
    $conn2 = mysql_connect(server2, user2, passwort2, TRUE);
    $conn3 = mysql_connect(server3, user3, passwort3, TRUE);

    Mit den PHP-Versionen 4.3 und 5 funktioniert die Anbindung wie oben nicht mehr. Die erste DB im Script wird normal aufgerufen, sobald aber die erste Verbindung aktiv ist, werden alle weiteren DB nicht mehr geöffnet.

    Woran liegt das ? Oder gibt es eine Syntax, die bei den neusten PHP-Versionen zu beachten ist, um mehrere Datenbanken gleichzeitig ansprechen zu können ?

    Gruß
    adonisroeschen

  • #2
    Mit den PHP-Versionen 4.3 und 5 funktioniert die Anbindung wie oben nicht mehr. Die erste DB im Script wird normal aufgerufen, sobald aber die erste Verbindung aktiv ist, werden alle weiteren DB nicht mehr geöffnet.
    definiere!

    Kommentar


    • #3
      Die Syntax des Funktionsaufrufes ist zumindest ja noch gleich....
      [color=blue]MfG Payne_of_Death[/color]

      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
      [color=red]Merke:[/color]
      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

      Murphy`s Importanst LAWS
      Jede Lösung bringt nur neue Probleme
      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

      Kommentar


      • #4
        Ohne die Fehlermeldung kann dir hier wohl kaum geholfen werden.

        Wenn nix kommt, dann mysql_error() verwenden.

        Übergibst du denn an mysql_query auch den Link identifier?
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Verbindung zu mehreren Datenbanken - Problem gelöst

          Hallo,

          danke für eure schnellen Antworten. Hier der Quellcode meiner config-Datei:

          Alter Code:

          PHP-Code:

          //###Verbindung mit den Datenbank herstellen ###

          error_reporting(15);
          class 
          Config {};
          $cfg=new Config;
          $cfg->dbhost="localhost";

          //Tippdb
          $cfg->dbname1="tipp";
          $cfg->dbuser1="user1";
          $cfg->dbpass1="pass1";
          //Firmendb
          $cfg->dbname2="firmen";
          $cfg->dbuser2="user2";
          $cfg->dbpass2="pass2";
          //Forumdb
          $cfg->dbname3="forum";
          $cfg->dbuser3="user3";
          $cfg->dbpass3="pass3";

          $conn1 Mysql_connect($cfg->dbhost$cfg->dbuser1$cfg->dbpass1TRUE);
          $conn2 Mysql_connect($cfg->dbhost$cfg->dbuser2$cfg->dbpass2TRUE);
          $conn3 Mysql_connect($cfg->dbhost$cfg->dbuser3$cfg->dbpass3TRUE);

          //### Prüfen, ob Verbindungen zu Stande kommen ###

          if (!$conn1 or !conn2 or !conn3) die ("Verbindungsfehler");
          if (!
          mysql_select_db($cfg->dbname1$conn1)) die ("Keine Verbindung zur Datenbank Tipp"); 

          //### ab hier hakte es dann, wenn ich abfrage, ob die Datenbanken 2 und 3 ausgewählt wurden, bricht er ab 
          // und gibt die von mir definierte Fehlermeldung "Keine Verbindung zur Datenbank Firmen" aus

          if (!mysql_select_db($cfg->dbname2$conn2)) die ("Keine Verbindung zur Datenbank Firmen");
          if (!
          mysql_select_db($cfg->dbname3$conn3)) die ("Keine Verbindung zur Datenbank Forum"); 
          Nun aufeinmal funktioniert alles wieder , nachdem ich euren rat befolgt habe und vom Server Fehlermeldungen verlangte.
          Meine Abfragen zu mysql_select_db lauten nun wie folgt:

          Neuer Code

          PHP-Code:

          if (!mysql_select_db($cfg->dbname1$conn1)) {mysql_error();}
          if (!
          mysql_select_db($cfg->dbname2$conn2)) {mysql_error();}
          if (!
          mysql_select_db($cfg->dbname3$conn3)) {mysql_error();} 
          Nachdem ich nun statt mit "die" und einer Textmeldung nachfolgende Aktionen abbreche und bei Problemen nun die Funktion mysql_error() aufrufe , bricht der Server die Verbindung zur DB2 und DB3 auch nicht mehr ab.
          Ich kann mir das zwar nicht erklären, aber wenn es funktioniert, solls mir recht sein :-).

          Gruß Gabi

          Kommentar


          • #6
            PHP-Code:
            If (!$conn1 or !conn2 or !conn3
            Ändern in

            PHP-Code:
            If (!$conn1 or !$conn2 or !$conn3

            Kommentar


            • #7
              Hallo neogrande,


              danke für den Hinweis. Habe gleich mal nachgesehen, in dem Orginaldokument stimmt die Syntax. Habe mich nur vertippt, als ich es hier ins Forum schrieb *schäm.

              Gruß adonisroeschen

              Kommentar


              • #8
                Original geschrieben von adonisroeschen
                Habe mich nur vertippt, als ich es hier ins Forum schrieb
                Rechte Maustaste kopieren, rechte Maustaste einfügen...schonmal probiert?
                Oder auch Strg+C, Strg+V

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar

                Lädt...
                X