Script um CSV-Datei einlesen

Script um CSV-Datei einlesen

am 19.04.2005 23:48:18 von Fabio Marti

Hallo

Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können und
in die MySQL DB geschrieben werden. Kennt jemand etwas brauchbares oder hat
jemand auch schon so was gemacht? Ich möchte nicht das ganze neu erfinden.

http://www.php-faq.de/q/q-mysql-csv-import.html hilft mir nicht wirklich
weiter.

Danke!
Fabio

Re: Script um CSV-Datei einlesen

am 20.04.2005 07:14:51 von Axel Schwenke

"Fabio Marti" wrote:
>
> Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können und
> in die MySQL DB geschrieben werden. Kennt jemand etwas brauchbares oder hat
> jemand auch schon so was gemacht? Ich möchte nicht das ganze neu erfinden.

MySQL kann CSV direkt lesen. Stichwort: LOAD DATA INFILE
Ein Skript dafür *wäre* ein neues Rad.


XL

Re: Script um CSV-Datei einlesen

am 20.04.2005 08:14:43 von Gordon Grubert

Hallo Fabio,

> Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können und
> in die MySQL DB geschrieben werden. Kennt jemand etwas brauchbares oder hat
> jemand auch schon so was gemacht? Ich möchte nicht das ganze neu erfinden.
aber diesen "Dreizeiler" bekommt man doch schnell hin, oder?

1. DB-Connect
2. open csv-File
3. split nach Trennzeichen
4. input in DB
5. close csv-File
6. disconnect

Schoene Gruesse
Gordon

Re: Script um CSV-Datei einlesen

am 20.04.2005 09:33:08 von Michael Dittrich

Hallo,

Axel Schwenke schrieb:

>"Fabio Marti" wrote:
>>
>> Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können und
>> in die MySQL DB geschrieben werden. Kennt jemand etwas brauchbares oder hat
>> jemand auch schon so was gemacht? Ich möchte nicht das ganze neu erfinden.
>
>MySQL kann CSV direkt lesen. Stichwort: LOAD DATA INFILE
>Ein Skript dafür *wäre* ein neues Rad.

Eigentlich schon, nur einige Provider haben diese Funktion gesperrt.
Somit bleibt dir nur der Weg ein Skript in PHP zu verwenden.

Viele Grüße

Michael

--
http://www.michaeldittrich.de
http://www.baureihe772.de

--
http://www.michaeldittrich.de
http://www.baureihe772.de
http://www.osthotels.de

Re: Script um CSV-Datei einlesen

am 20.04.2005 10:47:30 von Kai Ruhnau

Gordon Grubert wrote:
> Hallo Fabio,
>
>> Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können
>> und
>> in die MySQL DB geschrieben werden. Kennt jemand etwas brauchbares
>> oder hat
>> jemand auch schon so was gemacht? Ich möchte nicht das ganze neu
>> erfinden.
>
> aber diesen "Dreizeiler" bekommt man doch schnell hin, oder?
>
> 1. DB-Connect
> 2. open csv-File
> 3. split nach Trennzeichen

Das funktioniert nur manchmal, nämlich dann, wenn kein "enclosure"
verwendet wird:

http://www.php.net/fgetcsv

> 4. input in DB
> 5. close csv-File
> 6. disconnect

Grüße
Kai

--
This signature is left as an exercise for the reader.
Unsatz des Jahres:
$POLITIKER ruft $PARTEI zur Geschlossenheit.

Re: Script um CSV-Datei einlesen

am 20.04.2005 11:28:17 von Patrick Daether

Axel Schwenke wrote:
> MySQL kann CSV direkt lesen. Stichwort: LOAD DATA INFILE
> Ein Skript dafür *wäre* ein neues Rad.

Manchmal will man aber auch die Daten noch auf Gültigkeit etc.
überprüfen, bevor das ganze in die DB knallt.
Deshalb würde ich das nicht immer als neues Rad bezeichnen, sondern ggf.
als notwendigen Zwischenschritt.

Gruß

Patrick

Re: Script um CSV-Datei einlesen

am 20.04.2005 15:42:27 von Axel Schwenke

Michael Dittrich wrote:
> Axel Schwenke schrieb:
>>"Fabio Marti" wrote:
>>>
>>> Ich suche ein Script, mit welchem CSV-Dateien aufgeladen werden können und
>>> in die MySQL DB geschrieben werden.
>>
>>MySQL kann CSV direkt lesen. Stichwort: LOAD DATA INFILE
>>Ein Skript dafür *wäre* ein neues Rad.
>
> Eigentlich schon, nur einige Provider haben diese Funktion gesperrt.

Ich habe in Fabios Posting nichts von "Provider" und "LOAD DATA INFILE
scheitert mangels Zugriffsrechten" gelesen. Allerdings kommt mir jetzt
eine Ahnung, was er mit "aufgeladen" gemeint haben könnte...

> Somit bleibt dir nur der Weg ein Skript in PHP zu verwenden.

IIRC hat mysqli speziellen Support zum Einstöpseln eigener Parser-
routinen für LOAD DATA INFILE. Aber wahrscheinlich sind PHP5 (oder
wenigstens ein mysqli-enabledtes PHP4 auch wieder zuviel verlangt)


XL

Re: Script um CSV-Datei einlesen

am 21.04.2005 20:47:54 von Fabio Marti

Hallo
Habe es so gelöst:

Zuerst File uploaden und dann:
$file_einlesen = ("LOAD DATA INFILE '../../pfad/datei.csv' INTO TABLE
tabellenname
FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'");

Aber so wird einfach das File eingelesen. Was wenn ich in der ersten Zeile
die Spaltennamen habe? Dann wird ja alles eingelesen. Auch Spaltennamen. Wie
kann man diese weglassen?

Gruss
Fabio