Mit 2 Datenbanken arbeiten

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

  • Mit 2 Datenbanken arbeiten

    Hallo ich habe ein problem:

    und zwar funktioniert mysql_select_db($connect1); nicht.

    Der Connectet Trotzdem auf $connect2 und wechselt nicht auf $connect1 wenn ich den befehl benutze -.-

    Was mache ich falsch?

    PHP-Code:

    $connect1 
    mysql_connect("localhost""sql4""XXXX");
    $connect2 mysql_connect("localhost""sql1""XXXX");

    mysql_select_db("sql4"$connect1);
    mysql_select_db("sql1"$connect2);

    mysql_select_db($connect1);
     
    $news_sql2 "SELECT email FROM user1 WHERE email!='0' LIMIT 0,2";
    $news_result2 mysql_query($news_sql2) or die('Fehler 3: '.mysql_error());
    while (
    $row2 mysql_fetch_array($news_result2MYSQL_NUM))
    {
    $emailausdb[] = $row2[0];}

    mysql_select_db($connect2);
    $news_sql "SELECT Email FROM letterit_abonnenten WHERE Email!='0' LIMIT 0,2";
    $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
    while (
    $row mysql_fetch_array($news_resultMYSQL_NUM))
    {
    $emailindb[] = $row[0];}

    echo 
    $emailausdb[0];
    echo 
    $emailindb[0]; 
    Dann kommt halt der Fehler: (weil er auf die falsche Datenbank zugreift ... die Table user1 ist halt in der Datenbank sql4)


    PHP-Code:

    Fehler 3
    Table 'sql1.user1' doesn't exist 
    Zuletzt geändert von Dengo123; 01.08.2009, 18:49.

  • #2
    resource mysql_query ( string $Anfrage [, resource $Verbindungs-Kennung ] )

    mysql_query() sendet eine Anfrage an die zur Zeit aktiven Datenbank, die mit
    Ich würde mal die DB Verbindung mit übergeben.

    Da fällt mir noch auf:

    [COLOR=#000000][COLOR=#006600]
    [/COLOR][COLOR=#0000cc]mysql_select_db[/COLOR][COLOR=#006600]([/COLOR][COLOR=#0000cc]$connect1[/COLOR][COLOR=#006600]);

    [/COLOR][/COLOR]mysql_select_db ( string $database_name [, resource $link_identifier ] )

    Hab da noch ein gutes Beispiel gefunden:

    http://de2.php.net/manual/de/functio...t-db.php#52584
    Zuletzt geändert von ; 01.08.2009, 19:08.

    Kommentar


    • #3
      danke, es hat funktioniert
      Zuletzt geändert von Dengo123; 01.08.2009, 19:14.

      Kommentar


      • #4
        PHP-Code:
        $connect1 mysql_connect("localhost""sql4""XXXX");
        $connect2 mysql_connect("localhost""sql1""XXXX");

        mysql_select_db("sql4"$connect1);
        mysql_select_db("sql1"$connect2);

        $news_sql2 "SELECT email FROM user1 WHERE email!='0' LIMIT 0,2";
        $result mysql_query($news_sql2$connect1);
        ... 
        wie mein vorredner schon sagte
        Gruß
        Uzu

        private Homepage

        Kommentar


        • #5
          Ich poste mla hier weiter auch wenn es ein anderes problem ist ...

          also ich möchte meine eMail-Adressen von Datenbank 1 zu Datenbank 2 übertragen....

          allerdings führt er egal ob mit WHILE oder mit FOR schleife .... Das Scrript nur einmal aus ... dann ende ... mit for schleife sogar GARNICHT -.-

          WARUM !?!?

          Also das er nach 10x oder abbricht würde ich ja verstehen aber das er nach 1x aufhört ? also nur eine eMail-Adresse überträgt....

          PHP-Code:

          $connect1 
          mysql_connect("localhost""sql4""XXX");
          $connect2 mysql_connect("localhost""sql1""XXX");

          mysql_select_db("sql4"$connect1);
          mysql_select_db("sql1"$connect2);

          mysql_select_db("db1",$connect1);
          mysql_select_db("db2",$connect2);

          $count 1;

          $zahl 100;

            while(
          $count $zahl)
              {

          $news_sql2 "SELECT email FROM user1 WHERE email!='0000000000' LIMIT 0,1"$which2 $connect1;
          $news_result2 mysql_query($news_sql2,$which2) or die('Fehler 3: '.mysql_error());
          while (
          $row2 mysql_fetch_array($news_result2MYSQL_NUM))
          {
          $emailausdb[] = $row2[0];}

          $teile explode("@"$emailausdb[0]);

          $which $connect2;
          MYSQL_QUERY("INSERT INTO letterit_abonnenten
          (BID, Email, domain, Datum, Option1, Option2, Option3, Option4, Code, Abmeldezeit, Status, IP)
          VALUES
          ( '1', '
          $emailausdb[0]', '$teile[1]', '1249148047', '', '', '', '', '', '0', '1', '87.122.15.40')",$which);

          mysql_query("UPDATE user1 SET email='0000000000' WHERE email='$emailausdb[0]'",$which2);

          $count++;


          Kommentar


          • #6
            Arbeitest du eigentlich mit 4 db's ?

            Damit du nicht durcheinander kommst solltest du bei $connect1 und $connect2 bleiben und die $which? fallen lassen.

            Kommentar


            • #7
              Naja das Script ist ja theoretisch fertig und funktioniert ja auch nur die schleife läuft halt nur 1x durch bzw. als for garnicht.

              Kommentar


              • #8
                Das Problem liegt vermutlich daran, dass die Schleife nur einmal durchlaufen wird und dann mit einem Fehler abbricht. Was ergibt denn ein
                PHP-Code:
                ... or die(mysql_error()); 
                hinter jedem Query?

                Hast du auch mal in der Schleife $count ausgeben lassen? Außerdem weiß ich nicht, ob du diesen Code überhaupt verstanden hast. Das ist völliger Tinnef:
                PHP-Code:
                $connect1 mysql_connect("localhost""sql4""XXX");
                $connect2 mysql_connect("localhost""sql1""XXX");

                mysql_select_db("sql4"$connect1);
                mysql_select_db("sql1"$connect2);

                mysql_select_db("db1",$connect1);
                mysql_select_db("db2",$connect2); 
                Vieleicht solltest du dir erst mal das hier zu Gemüte führen.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Ich habs geschaft, danke
                  Zuletzt geändert von Dengo123; 01.08.2009, 21:39.

                  Kommentar


                  • #10
                    Zitat von Dengo123 Beitrag anzeigen
                    Ich habs geschaft, danke
                    Dann poste bitte die Lösung und die Ursache. Für andere, die auch so ein Problem haben und wider Erwarten die SuFu nutzen.

                    Danke
                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Bitte entschuldige, hier meine Lösung:

                      Die Ursache ... ist ne gute Frage hab nen fehler "duplicated entry" erhalten. Daher hole ich jetzt nicht nur einen Eintrag aus der DB jetzt raus sondern alle auf einmal und geh die halt mit $a durch

                      und nochmal danke für eure hilfe

                      PHP-Code:

                      <?php

                      $connect1 
                      mysql_connect("localhost""sql4""XXXX");
                      $connect2 mysql_connect("localhost""sql1""XXX");

                      mysql_select_db("sql4"$connect1);
                      mysql_select_db("sql1"$connect2);


                      $news_sql2 "SELECT email FROM user1 WHERE email!='0000000000'"$which2 $connect1;
                      $news_result2 mysql_query($news_sql2,$which2) or die('Fehler 3: '.mysql_error());
                      while (
                      $row2 mysql_fetch_array($news_result2MYSQL_NUM))
                      {
                      $emailausdb[] = $row2[0];}

                      $countx count($emailausdb);

                      $count 0;
                      $a 0;

                        while(
                      $count $countx)
                          {

                      $teile explode("@"$emailausdb[$a]);

                      $which $connect2;
                      MYSQL_QUERY("INSERT INTO letterit_abonnenten
                      (BID, Email, domain, Datum, Option1, Option2, Option3, Option4, Code, Abmeldezeit, Status, IP)
                      VALUES
                      ( '1', '
                      $emailausdb[$a]', '$teile[1]', '1249148047', '', '', '', '', '', '0', '1', '87.122.15.40')",$which);

                      mysql_query("UPDATE user1 SET email='0000000000' WHERE email='$emailausdb[$a]'",$which2);

                      echo 
                      mysql_error();

                      $count++;
                      $a++;

                      }


                      ?>
                      Zuletzt geändert von Dengo123; 01.08.2009, 22:11.

                      Kommentar

                      Lädt...
                      X