Respondí una pregunta prácticamente idéntica el otro día: Guarde archivos CSV en la base de datos mysql
MySQL tiene una función LOAD DATA INFILE
, que le permite importar un archivo CSV directamente en una sola consulta SQL, sin necesidad de que se procese en un bucle a través de su programa PHP.
Ejemplo sencillo:
<?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);
?>
Es tan simple como eso.
Sin bucles, sin complicaciones. Y mucho mucho más rápido que analizarlo en PHP.
Página del manual de MySQL aquí:http://dev.mysql. com/doc/refman/5.1/en/load-data.html
Espero que ayude