CSV Dateien importieren

raphk

Mitglied
Wie kann ich CSV Dateien in meine MySQL Datenbank importieren?

Bei folgender Funktion ...

$upload = mysql_query("
LOAD DATA LOCAL INFILE \"datei.csv\"
REPLACE INTO TABLE $db
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
OPTIONALLY ENCLOSED BY '\"';
") or die ("Update fehlgeschlagen!");


... kommt immer nur "Update fehlgeschlagen" und die Datei wird nicht importiert obschon der Dateiname und die db richtig angegeben sind. Weiß einer was ich falsch mache? Worauf muss ich achten wenn ich CSV Dateien importiere?


Thx 4 help!

MFG Raphael
 
sieht eigendlich gut aus der befehl

mach mal hinten dran den:

or die(mysql_error()) dan bekommste die fehlermeldung von mysql

ist etwas aussagefähiger wie "ist fehlgeschlagen"
 
Acces Denied

Hab ich mal versucht! Fehler ist:

Access denied for user: 'user@Kunden2-1.KONTENT.De' (Using password: YES)

Komisch da PW und Datenbank korrekt sind und ich auch verbunden bin. Weiß einer wie ich das Problem weg bekomme? Bin bei Kontent gehostet. Hab also keinen eigenen Server.

Wäre schön wenn mir einer weiterhelfen könnte! Bin quasi fertig mit programmieren nur dieser Upload will net! :mad:

Danke schonmal im vorraus!

MFG Raphael
 
Acces Denied

also die Meldung kommt so wie sie da steht bloß anstatt user halt mein richtiger user-Name. Das YES steht auch in der Fehlermeldung so.
 
Bin bei Kontent gehostet. Hab also keinen eigenen Server.

das erklärt einiges :
a) für den load data braucht man spezielle rechte
b) die datei die man einliest muss schon vor ort sein (auf dem sql server) und ich denke das ist sie nicht


da hilft nur ein eigenes script in php
 
aha

Also die Datei liegt aufm Server (also auf meinem Webserver wo auch das PHP Script liegt).

Wie kann ich denn diese Rechte erhalten? Wenn ich diese Rechte nicht bekommen kann (bin bei bei Kontent gehostet) wie kann ich dann meinen Upload vollbringen? Du sagtest was von nem PHP Script? Wie geht das denn ungefähr?


Danke für die Hilfe!

Mfg Raphael
 
Telnet / SSH

Kann es sein, das ich für den Befehl LOAD DATA INFILE einen Telnet bzw SSH Zugang brauche?

Das würde einiges erklären!
 
telnet würde nicht wirklich weiterhelfen :-(

bei ettlichen hostern ist php server <> sql server

PHP:
# verbindungsaufbau zum mysqlserver lasse ich mal weg
$zeile = file("datei.cvs");
for ($lo=0;$lo<sizeof($zeile);$lo++) {
 $tmp = str_replace("\"","\'",$zeile[$lo]);
 $tmp = str_replace(";",",",$tmp);
 $erg = mysql_query("insert ignore into dbtabelle values($tmp)",$link);
}
 
Zuletzt bearbeitet:
hmm

hmm klappt immer noch nicht!

also anstatt dbtabelle kommt doch meine Tabelle? Ansonsten brauche ich doch nix zu ändern?

Man man man! Das muss doch irgendwann mal klappen!


Wenn ich den

or die ("Upload fehlgeschlagen! Grund: ". mysql_error ());

dran hänge kommt zwar Upload fehlgechlagen aber kein error.

Komisch komisch


Gruß Raphael
 
Zuletzt bearbeitet:
Zurück