dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Datenbanken: MySQL

Wie kann ich eine CSV-Datei aus MySQL exportieren?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

Die Umkehrung von LOAD DATA INFILE ist das SELECT INTO OUTFILE, eine Variante des regulären SELECT.

SELECT ...
    INTO OUTFILE '/home/www/servers/www.servername.de/tmp/export.csv'
    FIELDS
            TERMINATED BY ';'
            OPTIONALLY ENCLOSED BY '"'
    FROM ...;

Das Kommando wird die Datei auf dem Rechner anlegen, auf dem der Datenbankserver läuft und die Datei wird dem Benutzer gehören, unter dessen User-ID der Datenbankserver abläuft. Der Datenbankserver wird eine existierende Datei nicht überschreiben. Zur Ausführung des Kommandos ist file_priv notwendig.

Eine vollständige Beschreibung des Kommandos in englischer Sprache gibt es im MySQL Manual.

Wenn man kein file_priv hat, muss man sich stattdessen eine entsprechende Funktion in PHP selber bauen. Dabei ist folgendes zu beachten:

  • In CSV-Dateien sind Datensätze durch Kommata getrennt.

  • In CSV-Dateien sind Datensätze, die Sonderzeichen enthalten, insbesondere solche, die Kommata oder Anführungszeichen enthalten, durch Anführungszeichen einzuschließen.

  • In CSV-Dateien dürfen alle Datensätze in Anführungszeichen eingeschlossen werden.

  • In CSV-Dateien sind in Datensätzen, die Anführungszeichen enthalten, die Anführungszeichen zu verdoppeln.

Eine zweispaltige Tabelle, die die Tupel ( a; 10,4) und (b; Er sagte: "Hallo, Du!" ) enthält, muss nach dem Export also so aussehen:

a,"10,4"
b,"Er sagte: ""Hallo, Du!"""
Wie kann ich eine CSV-Datei aus MySQL exportieren?
http://www.php-faq.de/q-mysql-csv-export.html
 

dclp FAQ


Login