Ik heb onlangs een vrijwel identieke vraag beantwoord: CSV-bestanden opslaan in mysql-database
MySQL heeft een functie LOAD DATA INFILE
, waarmee het een CSV-bestand rechtstreeks in een enkele SQL-query kan importeren, zonder dat het in een lus via uw PHP-programma hoeft te worden verwerkt.
Eenvoudig voorbeeld:
<?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);
?>
Zo simpel is het.
Geen lussen, geen gedoe. En veel veel sneller dan het in PHP te ontleden.
MySQL-handleiding hier:http://dev.mysql. com/doc/refman/5.1/en/load-data.html
Ik hoop dat dat helpt