Mailinglisten-Archive |
> Über ein Formular wird eine CSV Datei hochgeladen.
> Diese wird nur temporär gespeichert und soll daraufhin in MySQL importiert
> werden.
>
> if(is_uploaded_file($_FILES['tracking_file']['tmp_name']))
> {
> $track_q = "LOAD DATA INFILE '" . $_FILES['tracking_file']['tmp_name']
> .
> "'
> INTO TABLE `tracking`
> FIELDS TERMINATED BY ';'
> ENCLOSED BY '\"'
> ESCAPED BY '\\'
> LINES TERMINATED BY '\r\n'";
>
> mysql_query($track_q);
> }
>
>
> Die Datei wurde erfolgreich hochgeladen und existiert zum Zeitpunkt des
> Skriptes eindeutig
> unter $_FILES['tracking_file']['tmp_name'].
>
> Aber die Query bringt keinen Erfolg. Eine Testquery zuvor zeigt, dass die
> Verbindung steht.
> auch LOAD DATA LOCAL INFILE geht nicht.
> Über phpMyAdmin geht die Query mit der gleichen Datei!
>
> Any ideas?!
>
Hier die Query, die mir phpMyAdmin nach erfolgreichem Import anzeigt und
empfiehlt:
LOAD DATA LOCAL INFILE '/tmp/php2mtcz4' INTO TABLE `tracking` FIELDS
TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'
Allerdings müsste sie in diesem Fall lauten:
LOAD DATA LOCAL INFILE '/tmp/php2mtcz4' INTO TABLE `tracking` FIELDS
TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '' LINES TERMINATED BY '\r\n'
Dann geht es. Wie kommt diese falsche Maskierung zustanden?! ESCAPED BY
'\\' :: ESCAPED BY ''
php::bar PHP Wiki - Listenarchive