J'ai répondu à une question pratiquement identique l'autre jour : Enregistrer les fichiers CSV dans la base de données mysql
MySQL a une fonctionnalité LOAD DATA INFILE
, ce qui lui permet d'importer un fichier CSV directement dans une seule requête SQL, sans avoir besoin qu'il soit traité en boucle via votre programme PHP.
Exemple simple :
<?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);
?>
C'est aussi simple que cela.
Pas de boucles, pas de chichi. Et beaucoup beaucoup plus rapide que de l'analyser en PHP.
Page de manuel MySQL ici :http://dev.mysql. com/doc/refman/5.1/en/load-data.html
J'espère que ça aide