pana: dBASE in MySQL importieren?

Hallo,
ich habe ein Problem: Ich möchte eine dBASE Datenbank in MySQL importieren. Ich hab schon mal gegoogelt, und auch bei selfphp gepostet, doch scheinbar hat niemand einen Rat.
hat wer schon mal versucht, oder kann mir ein TUT nennen, oder gar eine kleinere Anleitung posten?

Danke Tom

  1. Moin!

    ich habe ein Problem: Ich möchte eine dBASE Datenbank in MySQL importieren. Ich hab schon mal gegoogelt, und auch bei selfphp gepostet, doch scheinbar hat niemand einen Rat.
    hat wer schon mal versucht, oder kann mir ein TUT nennen, oder gar eine kleinere Anleitung posten?

    PHP verfügt über dBASE-Funktionen - diese müssen allerdings in deiner PHP-Version auch aktiviert sein, was nicht zwingend garantiert ist. phpinfo() sollte dir darüber Auskunft geben.

    Mit diesen Funktionen kannst du eine dbf-Datei datensatzweise auslesen und in die MySQL-DB schreiben.

    - Sven Rautenberg

    1. Moin!

      ich habe ein Problem: Ich möchte eine dBASE Datenbank in MySQL importieren. Ich hab schon mal gegoogelt, und auch bei selfphp gepostet, doch scheinbar hat niemand einen Rat.
      hat wer schon mal versucht, oder kann mir ein TUT nennen, oder gar eine kleinere Anleitung posten?

      PHP verfügt über dBASE-Funktionen - diese müssen allerdings in deiner PHP-Version auch aktiviert sein, was nicht zwingend garantiert ist. phpinfo() sollte dir darüber Auskunft geben.

      Mit diesen Funktionen kannst du eine dbf-Datei datensatzweise auslesen und in die MySQL-DB schreiben.

      Dem Vorschreiber vielen Dank. Kannst Du mir mal ein kleines TUT empfehlen, oder ne kleine Erklärung geben wie ich die Daten des .dbf Files am besten in meine MySQL DB einlese?
      Da ich noch nie mit dem Import von dbf gearbeitet habe stellen sich folgende Fragen für mich:
      -- Muss die DB bereits existieren, oder wird sie mittels der Infos aus dem dbf File erzeugt (oder nur bei Bedarf erzeugt???)
      -- Müssen Tabellen bereits vorhanden sein, oder gibt mir die wieder mein dbf File vor? (oder auch hier wieder nur bei Bedarf, sprich TBL nicht vorhanden, also erzeugen wir sie???)

      dass indizis etc. nicht übernommen werden können weiß ich bereits, nur scheitert es bei mir schon alleine am auslesen.
      was ich bräuchte wäre eine kleine hilfe wie ich mein .dbf File auslese, und es dann in MySQL einfüge... :)

      Danke an Sven!
      Grüße: Tom

      • Sven Rautenberg
      1. Moin!

        Dem Vorschreiber vielen Dank. Kannst Du mir mal ein kleines TUT empfehlen, oder ne kleine Erklärung geben wie ich die Daten des .dbf Files am besten in meine MySQL DB einlese?

        Ich kenne keins. dBASE-Dateien sind ziemlich ungewöhnlich und tauchen nur sehr selten auf - ich würde meinen, dass deshalb auch die Dokumentation in php.net recht dürftig ist.

        Allerdings: Soviele Befehle zu dBASE hat PHP nicht, und die Beschreibung der Befehle liefert eigentlich in der Summe dann doch genügend Beispielcode, auf dem man aufbauen kann.

        Wichtig: In Phase 1 solltest du mit PHP erstmal nur dafür sorgen, dass die dBASE-Datei datensatzweise ausgegeben wird. Wenn das klappt, kannst du in Phase 2 dann jeden Datensatz in eine MySQL-Tabelle schreiben.

        -- Muss die DB bereits existieren, oder wird sie mittels der Infos aus dem dbf File erzeugt (oder nur bei Bedarf erzeugt???)

        Die dBASE-Datei existiert, und für MySQL mußt du manuell (PHPMyAdmin geht natürlich auch) vorarbeiten.

        -- Müssen Tabellen bereits vorhanden sein, oder gibt mir die wieder mein dbf File vor? (oder auch hier wieder nur bei Bedarf, sprich TBL nicht vorhanden, also erzeugen wir sie???)

        In einer dbf-Datei ist jeweils nur eine einzige Datenbanktabelle drin. Für jede Datei benötigst du also eine MySQL-Tabelle.

        dass indizis etc. nicht übernommen werden können weiß ich bereits, nur scheitert es bei mir schon alleine am auslesen.

        Indices sind auch irrelevant. Die helfen ja nur beim suchenden Datenzugriff, und das legt MySQL auf Wunsch sowieso wieder für dich an.

        - Sven Rautenberg

      2. Hi there,

        was ich bräuchte wäre eine kleine hilfe wie ich mein .dbf File auslese, und es dann in MySQL einfüge... :)

        Wenn Du irgendeinen dBASE interpreter wie DBASE, CLipper oder Foxpro hast schick ich Dir ein programm, das sql-Dumps erzeugt, die Du mit phpmyadmin einlesen kannst...

        1. Hi there,

          was ich bräuchte wäre eine kleine hilfe wie ich mein .dbf File auslese, und es dann in MySQL einfüge... :)

          Wenn Du irgendeinen dBASE interpreter wie DBASE, CLipper oder Foxpro hast schick ich Dir ein programm, das sql-Dumps erzeugt, die Du mit phpmyadmin einlesen kannst...

          Ich wollte es eigentlich per CronJob lösen, dass es immer nachts eingelesen wird.
          Problem ist, dass Daten für einen Online Shop leider per .dbf bereitgestellt werden. Fragt nicht warum, ich verstehe es auch nicht.
          nun muss ich jedenfalls irgendwie sehen dass ich es per script immer einlesen lasse... :(

  2. Hi there,

    ich habe ein Problem: Ich möchte eine dBASE Datenbank in MySQL importieren. Ich hab schon mal gegoogelt, und auch bei selfphp gepostet, doch scheinbar hat niemand einen Rat.
    hat wer schon mal versucht, oder kann mir ein TUT nennen, oder gar eine kleinere Anleitung posten?

    Kommt d'rauf an, was Du unter dBASE Datenbank verstehst. Einzelne .dbf Dateien können sehr wohl in tables übernommen werden, das wars dann aber schon. Keine Indices, keine Relationen, keine referentielle Integrität. Das Problem ist auch, daß die entsprechenden dBASE Befehle in der php-konfigurationsdatei meist auskommentiert sind, am einfachsten ist es eigentlich, man schreibt sich so etwas selbst. .dbf ist ohnehin ein sehr simples format mit fixer Satzlänge, da ist das auslesen eigentlich kein sehr großer Aufwand. Noch einfach aber ist es, wenn Du ein Programm hast, die dbf Dateien vorher in irgendwas wie csv oder so zu konvertieren, das kannst Du in jedem Fall einfacher einlesen..