importer csv important

ViPHP
ViPHP | 3607 Messages

12 sept. 2006, 13:20

Bonjour à tous,
j'ai besoin actuellement d'importer un csv de plus 40000 enregistrements...
Donc j'ai même pas essayer de le faire en une requête :lol: , c'est même pas la peine!
Bon alors voilà la démarche que je vais suivre:
1- je parse le csv, met tout ça dans un grand tableau
2- je prend par exemple 500 enregistrements que j'insère dans la bdd
3- je redirige sur la même page après avoir effacer les 500 première entrée du tableau, et je repart au step2, jusqu'a la fin.

Bon déja, est-ce que vous pensez que se soit la bonne méthode ?

Mais ma question ne porte pas entièrement la dessus, je voudrai avoir votre avis pour le step 2:
j'ai deux solutions:

1-je fait une boucle qui fait un insert pur chaque entrée
2-je fait une grosse requête, mais qui risque de prendre du temps...

Quelle serait votre manière de voir les choses?
Ps: je veu essayer de pas toucher au temps limite d'éxécution!

Voilà merci

Mammouth du PHP | 1511 Messages

12 sept. 2006, 13:30

Il faut decomposer ton fichier csv...
@+

ViPHP
ViPHP | 3607 Messages

12 sept. 2006, 14:04

merci pour l'info :roll:
Mais comme tu as lut mon post, tu te rend compte que j'y avai déja penser, c'est seulement sur la manière que je posait la question :!:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 sept. 2006, 14:24

Est-ce que tu as envisagé de passer par l'instruction SQL LOAD DATA INFILE ?

Cette instruction te permet de charger à grande vitesse les données contenues dans un fichier vers une base de données MySQL
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

12 sept. 2006, 15:55

Absolument, je "plussoie" Zeus, j'ai il y a peu effectué une insertion de fichier (1,5 millions de lignes) en moins de deux minutes (chrono) : je ne me serais pas amusé à parser ça : tu peux parfaitement insérer 40000 lignes en moins de temps qu'il n'en faut pour le dire directement dans une base de données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 3607 Messages

13 sept. 2006, 10:47

Merci pour l'info :)
Je vais de ce pas modifier mon bout de script!
je met résolu pour la partie méthodologie!, j'irai voir côté mysql, si j'ai un problème :wink: