Niedawno odpowiedziałem na praktycznie identyczne pytanie: Zapisz pliki CSV w bazie danych mysql
MySQL ma funkcję LOAD DATA INFILE
, co pozwala na importowanie pliku CSV bezpośrednio w pojedynczym zapytaniu SQL, bez konieczności przetwarzania go w pętli przez program PHP.
Prosty przykład:
<?php
$query = <<<eof
LOAD DATA INFILE '$fileName'
INTO TABLE tableName
FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(field1,field2,field3,etc)
eof;
$db->query($query);
?>
To takie proste.
Bez pętli, bez zamieszania. I dużo dużo szybciej niż parsowanie w PHP.
Strona podręcznika MySQL tutaj:http://dev.mysql. com/doc/refman/5.1/en/load-data.html
Mam nadzieję, że to pomoże