DB Auslesen und Array zurückschreiben

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

  • DB Auslesen und Array zurückschreiben

    Hallo,
    folgendes Problem.

    Ich habe eine Datenbank ausgelesen (ODBC, Oracle) und die Werte in eine Variable geschrieben.

    Wie kann ich diese Daten jetzt in eine MySQL Datenbank übertragen.

    Es geht wirklich nur um die Daten, die Felder und DB Namen sind in beiden Datenbanken (Oracle, MySQL) gleich. Die MySQL DB.Tbl ist leer.

    Hier ein Stück Code:

    #Auslesen der ODBC/Oracle Daten
    $odbc_daten = @odbc_exec($odbc_conn, "SELECT * FROM $odbc_table");

    Die Daten in der Variable möchte ich nun in eine MySQL DB schreiben, natürlich passend zu den Feld/Spaltennamen.
    MfG
    PHP MySQL Coder

  • #2
    was gibt dir denn
    PHP-Code:
    print_r(odbc_fetch_array($odbc_daten)); 
    aus?
    stehen da die spaltennamen als arrayindizes zur verfügung?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Er zeigt das:

      Array ( [AUSLIEFERUNGSDATUM] => [BAUREIHE] => [EK_WERT] => 0 [ERSTZULASSUNG] => 1996-02-08 00:00:00 [FABRIKAT] => BMW [FAHRZEUGART] => Neuwagen [FAHRZEUGNR] => 13981 [FARBE] => [POLSTER] => [FGSTNR] => EX73359 [FILIALE_NAME1] => [FILIALE_NAME2] => [GETRIEBE] => [KAROSSERIE] => [KRAFTSTOFF] => [KM_STAND] => 35671 [KUNDENNR_DMS] => 22440 [KUNDENNR] => 8919 [LETZTER_WERKSTATTBESUCH] => 1998-08-19 00:00:00 [MODELLREIHE] => [MOTOR_KONZEPT] => Benzineinspritzung [MOTOR_SERIE] => 6 Zylinder, Reihe, 4 Ventiler [NUTZUNG] => Privat [SCHAETZWERT] => 0 [TYP] => CD91 [VERGLEICHSKLASSE] => VK-1 [VERKAUFSDATUM] => 1996-02-08 00:00:00 [VK_PREIS] => 0 [VOR_ERSATZDATUM] => [VOR_LAUFLEISTUNG] => [ZAHLUNGSWEISE] => [FILIAL_NR] => )
      MfG
      PHP MySQL Coder

      Kommentar


      • #4
        gut, dann noch als kleinen denkanstoß:
        PHP-Code:
        $odbc_daten = @odbc_exec($odbc_conn"SELECT * FROM $odbc_table"); 
        while (
        $row=odbc_fetch_array($odbc_daten))
        {
          foreach (
        $row as $key => $value)
            echo 
        'Spalte: '.$key.'<br />Wert: '.$value.'<p />';
          echo 
        '<hr />';

        hast du jetzt alles?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Also...

          muss ich nur noch die Variablen $key und $value an mysql_query übergeben.

          mysql_query("INSERT INTO $mysql_table ($key) VALUES ($value)");

          ist das so richtig.
          MfG
          PHP MySQL Coder

          Kommentar


          • #6
            ja, aber so setzt du bloß eine spalte

            du musst dir erst alle spalten samt ihrer werte holen mit foreach und daraus dann dein insert basteln
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Ich könnte...

              jeden Wert einzeln auslesen und in eine Variable Speichern. Dann müsste ich 32 Variablen anlegen. Das ist zu viel Arbeit, da ich hunderte von Tabellen habe. Dann müsste ich jede Abfrage anpassen.

              Kann man das Automatisieren, so das die Anzahl der Spalten egal ist.
              MfG
              PHP MySQL Coder

              Kommentar


              • #8
                geht auch automatisiert
                PHP-Code:
                foreach ($row as $key => $value)
                {
                  
                $columns[]=$key;
                  
                $values[]=$value;
                }
                echo 
                'INSERT INTO tabelle ('.implode(',',$columns).') VALUES ('.implode(',',$values).')'
                das innerhalb der while-schleife
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Er zeigt alles....

                  korrekt an (Soweit ich das beurteilen kann, muss es halt noch ausprobieren). Danke


                  Wenn du zeit hast kannst du mir die Funktionsweise nur mal kurz erläutern. So ganz habe ich das noch nicht verstanden.


                  Vielen Dank nochmal
                  MfG
                  PHP MySQL Coder

                  Kommentar


                  • #10
                    Noch ein Problem....

                    Im Text des Datensatzes der übertragen werden soll, befinden sich Kommas.

                    Im Datensatz "MOTOR_SERIE" befindet sich folgender String:
                    "6 Zylinder, Reihe, 4 Ventiler".


                    Hier wird ja nach Komma getrennt also habe ich im Value Bereich 2 Kommatrennungen. Wie bekomme ich das jetzt hin.

                    "INSERT INTO procar_sales_import ('.implode(',',$columns).') VALUES ('.implode(',',$values).')"

                    Ich verzweifle langsam.
                    MfG
                    PHP MySQL Coder

                    Kommentar

                    Lädt...
                    X