Daten in 2 MySQL-DB eintragen

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

  • Daten in 2 MySQL-DB eintragen

    Hallo erstmals!

    Ich weiss, dass ich noch ein Newbee in PHP bin, aber ich brauche jetzt mal echt ganz dringend Hilfe, weil ich nicht weiterkomme. Vielleicht erbarmt sich jemand von Euch!

    Ich habe folgendes Problem:
    Bei einem Anmeldeformular werden derzeit in eine einzige Tabelle die Daten eingetragen, was ja auch wirklich gut funkt, aber ich brauchs jetzt, dass die Daten an eine externe DB ebenfalls übetragen werden, aber bekomme es einfach nicht hin. Wenn ich lediglich die Daten der DBs austausche funkt das einwandfrei, aber wenn ich versuche über Befehl zu verbinden, dann funkt das nicht.

    So sieht meine database.php aus:

    require("config.php.inc");

    if($action=="anmelden")
    {
    $result = db_query("INSERT INTO `kontakte`
    (`id`,
    `pseudonym`,
    `name`)
    VALUES
    ('$autoIDnum',
    '$pseudonym',
    '$name')
    ;");
    }
    In der config.php.inc ist die db-verbindung wie man hier sieht:
    <?
    $dbIDnull = "null";
    $link = mysql_connect("localhost", "user", "password") or mysql_error();
    $conn = mysql_select_db("db_name");

    function db_query($query) {
    global $db_type, $link, $stmt, $counter, $f_row;
    return mysql_query($query);
    }

    function db_fetch_row ($result) {
    global $db_type,$link,$f_row;
    return @mysql_fetch_row($result);
    }

    function db_die() {
    echo mysql_error();
    }
    ?>
    Was ich aber möchte ist, dass bei $action=="wanmelden" sich jetzt die daten in die angegebene, aber auch in die zweite db eintragen,
    aber bei allen anderen $actions eben nicht.

    Ich steh jetzt und weiss nicht mehr weiter!
    Kann mir vielleicht jemand behilflich sein, wie ich das unterbringe?

    Danke schon mal im Voraus an Alle!

    Gruss
    Wolf

    P.S.: Falls angenommen wird, dass die 2. DB für externe Zugriffe gesperrt ist: dem ist leider nicht so.
    Ich habs mal mit
    if ($action=="wanmelden") {
    require("config2.php.inc");
    }
    versucht, bei dem der 2. DB-Eintrag erfolgen soll, aber es geht einfach nicht mehr weiter.

  • #2
    Bin mir zwar nicht ganz sicher ob das funktioniert, aber hast du mal versucht eine zweite verbindung aufzumachen nach dem system:

    $link1 = mysql_connect("localhost", "user", "password") or mysql_error();
    $conn = mysql_select_db("db_name1");
    $link2 = mysql_connect("localhost", "user", "password") or mysql_error();
    $conn = mysql_select_db("db_name2");

    und wenn dann deine action=wanmelden ist
    einfach zusätzlich über $link2 anmelden.

    Kommentar


    • #3
      .

      Kommentar


      • #4
        hallo jochenj!

        danke für deine hilfe, aber ich kann immer nur bei einer db die daten eintragen lassen. bei beiden gleichzeitig geht das nicht. bin kurz vor der verzweiflung.

        Kommentar


        • #5
          Original geschrieben von WolfG
          ich kann immer nur bei einer db die daten eintragen lassen. bei beiden gleichzeitig geht das nicht.
          dann mach's doch nacheinander...

          verbindung zu db1 aufbauen - query ausführen - verbindung schliessen.
          verbindung zu db2 aufbauen - query ausführen - verbindung schliessen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von WolfG
            hallo jochenj!

            danke für deine hilfe, aber ich kann immer nur bei einer db die daten eintragen lassen. bei beiden gleichzeitig geht das nicht. bin kurz vor der verzweiflung.
            Hey,

            wie bzw. warum willst du beide Datenbanken denn zur selben Zeit pflegen können, das ganze läuft als Stapelverarbeitung, zunächst Task1 dann Task 2.
            Das spielt auch irgendwo keine Rolle wann was gemacht wird.


            So wie du das gemacht hast läuft das ganze nur einmal durch was tun könntest ist das was Jochenj bereits gesagt hat.

            Ich schlage vor du machst aus
            PHP-Code:
            dbIDnull "null";
            $link mysql_connect("localhost""user""password") or mysql_error();
            $conn mysql_select_db("db_name"); 
            eine Funktion.

            Dann entweder zweimal die Funktion für die 1. und 2. die zweite DB durchführen oder aber ne unnötige For-Schleife verwenden, bsp.

            PHP-Code:

            // 1.DB-Daten
                
            $db[1][host] = "localhost1";
                
            $db[1][user] = "root";
                
            $db[1]pass] = "root";

            // 2.DB-Daten
                
            $db[2][host] = "localhost2";
                
            $db[2][user] = "root";
                
            $db[2]pass] = "root";

            // for-Schleife

            for ( $i 0$i 3$i++ ) {
            $ergebnisdb_connect ($db[$i][host], $db[$i][user], $db[$i][pass]);
            }

            echo 
            "Im Bad und WC ist alles ok"
            Ich hoffe ich hab in der schnelle keine Syntaxfehler gemacht. Aber das Prinzip ist klar.
            Entweder so oder die function zweimal aufrufen.

            P.S: nimm lieber php-Tag als code-tag so liesst es sich gleich wie im Editor.
            [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


            • #7
              Hey Payne!

              Danke für den PHP Hinweis. Hab ich übersehen.

              Das mit der For-Schleife probiere ich jetzt aus. Auch dafür Danke!

              Gruss
              Wolf

              Kommentar


              • #8
                Aber bitte vorher eine Funktion basteln, ist nur ein Beispiel.

                Abgesehen davon würde trotzdem die Funktion ohne Schleife realisieren da aus Performancegründen das nicht ganz sinnvoll wäre, besser

                PHP-Code:

                // die funktion
                function get_db_connect ($host$user,$pass) {

                $conn_id mysql_connect($host$user$pass) or die("DB-Versuch scheiterte");

                return 
                $conn_id;

                }

                // Die eigentliche Abwicklung:

                // DB Parameter:
                $host1 "localhost1";
                $user1 "root";
                $pass1 "root";
                $host2 "localhost2";
                $user2 "root";
                $pass2 "root";

                // DB 1
                $db_connection1=get_db_connect($host1$user1$pass1);
                // Abarbeiten Datenbank auswählen in $db_connection ist die ID der Verbindung erhalten optional zuweisen zum Datenbank auswählen.

                //DB 2
                $db_connection2=get_db_connect($host2$user2$pass2);
                // Abarbeiten Datenbank auswählen in $db_connection ist die ID der Verbindung erhalten optional zuweisen zum Datenbank auswählen. 
                Entweder Schleife für 20.000 Datenbanken oder 2 mal die Funktion starten.

                Ach ja falls das alles ist was du mit der Datenbank machen willst dann aus Performancegründen besser in der Funktion nach der Abarbeitung die Mysql-Verbindung schließen.
                Zuletzt geändert von Payne_of_Death; 05.06.2003, 12:40.
                [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

                Lädt...
                X