MySQL LOAD DATA INFILE -id aus dem Code und Rest aus dem File.

Dimax

Top Contributor
Guten Tag ,
Ich habe Probleme beim auslesen aus einer Datei und inserten in die Tabelle.
Meine Aufgabe ist es ,dem Client erlauben seine Daten mit dem csv-File in die Tabelle eintragen.
Das Problem :der Client kennt seine pers-id nicht,ich kenne die aber im Programm ,sitzt auf der Variable $p_id.
Wie ich verstanden habe ,gibt es im Load Infile keine where Abfrage .
Wie könnte man das so realisieren, dass die Daten aus dem File in die Zieltabelle nur unter Client p_id eingetragen werden. Unten ist meine prototype Abfrage die ich verbessern soll:
Code:
$sql="LOAD DATA INFILE '$uploadfile' INTO TABLE arbeitszeiten FIELDS TERMINATED BY ',' ".
   " LINES TERMINATED BY '\r\n'  (@datum,@kommen,@gehen,@pause) ".
"SET @datum=str_to_date(@datum, '%Y-%m-%d');";
Danke für jede Hilfe!!
 
Danke mihe7 ,wird wahrscheinlich funktionieren .Ich kann jetzt aber leider nicht prüfen, Acces denied for _User.
Habe gelesen ,dass LOAD INFILE muss irgendwo erlaubt sein.Suche grade wo mann dass einstellen kann.
 
also das Problem mit Acces lag in sql-Einstellungen. Mann muss statt load data infile so load data local infile schreiben und global erlauben SET @@GLOBAL.`local_infile` := 1; Ist zwar meiner Meinung nach ein großes Sicherheitsrisiko,aber wenn man so möchte ist möglich.
 
LOAD DATA LOCAL INFILE überträgt eine Datei des Clients zum Server und importiert diese. LOAD DATA INFILE importiert eine Datei, die sich auf dem Server befindet. Dem entsprechend sind die Pfade natürlich entweder auf den Client oder auf den Server bezogen.

Der Import funktioniert je nach Variante unterschiedlich. Mit der LOCAL-Option werden Duplikate "ignoriert" (es gibt nur eine Warnung), ohne die LOCAL-Option wird der Import abgebrochen.

Für die Version ohne LOCAL braucht der Benutzer das FILE-Privileg. Außerdem ist es abhängig von der MySQL-Variablen "secure_file_priv": gibt diese ein Verzeichnis an, muss sich die zu importierende Datei dort befinden. Dagegen gilt unabhängig davon, dass die Datei natürlich von MySQL lesbar sein muss.
 

Zurück
Oben