Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
LOAD DATA INFILE Spalte "ID" [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
LOAD DATA INFILE Spalte "ID"


 
Gleni
11-08-2004, 22:06 
 
Hi,

bevor ich hier lange um den heißen Brei rede, komm ich lieber direkt zur Sache:

Ich habe eine *.csv-Datei mit mehreren Spalten und Zeilen getrennt durch ein ";". Die erste Spalte der Tabelle heißt "ID", und ist logischerweise auch der PK. Als nächstes kommen die Spalten in die die Daten aus der CSV-Datei sollen.
Mit dem Befehl "LOAD DATA INFILE" lade ich die Daten rein, das klappt auch alles super.

Das Problem ist nun, dass er die erste Spalte aus der CSV-Datei in die erste Spalte der Tabelle, also "ID" reinläd, wobei er "ID" überspringen soll.

Wie sag ich meiner MySQL-DB, dass er "ID" Überspringen soll, und erst bei Spalte 2 anfangen soll, mir die Daten zu Importieren?

mysql_query('LOAD DATA LOCAL INFILE "ecdl.csv" IGNORE INTO TABLE ecdl FIELDS TERMINATED BY ";" LINES TERMINATED BY "\\n";') or die('Error loading data file.<br>' . mysql_error());

Die Spalte "ID" ist vom Datentyp "INT", "NOT NULL" und "auto_increment".

 
wahsaga
12-08-2004, 07:54 
 
Original geschrieben von Gleni
bevor ich hier lange um den heißen Brei rede,
... poste ich meine frage mal ohne nachzudenken unter "PHP", obwohl sie damit null zu tun hat.

*seufz* *verschieb*


LOAD DATA LOCAL INFILE "ecdl.csv" IGNORE INTO TABLE ecdl FIELDS TERMINATED BY ";" LINES TERMINATED BY "\\n"

das schlüsselwort IGNORE klingt ja schon mal ganz nett, oder was meinst du?
INTO TABLE zu "ignorieren" ist allerdings ziemlicher unfug.

also wirf doch mal einen blick ins mysqml-manual ...


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:52 Uhr.