Bonjour,
PhpMyadmin limite la taille des fichiers texte à importer à 2048 Ko. De plus si vous travaillez sur un serveur distant il y a une limite de temps au téléchargement du fichier texte vers le serveur distant.
Dans le cas où vous travaillez sur un serveur local sous Linux il faut :
1/ Ouvrir la console
2/ Taper mysql -p
3/ Entrer le mot de passe mysql
4/ Taper (exemple avec un fichier csv de 73 Mo avec 893573 enregistrements produit sous Windows et copié sur le serveur linux) :
LOAD DATA LOCAL INFILE "/user/tmp/votrefichier.csv" INTO TABLE base.table FIELDS TERMINATED BY " ;" LINES TERMINATED BY "\r" (colonne1,colonne2,colonne3,colonne4,colonne5,colonne6,colonne7,colonne 8,colonne9,colonne10) ;
5/ Si tout se passe bien voilà ce qui s’affiche à la fin des insertions :
Query OK, 893573 rows affected (1 hour 12 min 24.45 sec)
Records : 893573 Deleted : 0 Skipped : 0 Warnings : 0
Une vérification via phpmyadmin m’indique que tout a été effectivement inséré dans ma table.
Mon exemple insère des lignes depuis un fichier CSV vers certaines colonnes d’une table existante. Pour les options de LOAD DATA INFILE une recherche sur Google devrait vous donner des réponses (Ou bien consultez le site www.nexen.net).
Pour être tout à fait honnète le problème que je rencontre ensuite est que je ne peux pas faire de sélection sur cette table via phpmyadmin (message d’erreur)... Peut-être ai-je trop d’enregistrements dans cette table ? Je cherche la réponse, aussi si vous avez une idée sur la question...
Cordialement