Requête multi-instructions avec MySQL - PHP - Programmation
Marsh Posté le 05-06-2007 à 14:21:45
tu peux faire plusieurs insertions au sein de la meme requeet :
( de mémoire )
insert into matable(chp1,chp2,..) VALUES (val1,val2,..) , (val5,val14,..)
Marsh Posté le 05-06-2007 à 15:10:17
cgo2 a écrit : Tu peux aussi envisager d'utiliser le client mysql en ligne de commande, qui n'est pas soumis au timeout d'apache. |
d'apache?
Marsh Posté le 05-06-2007 à 15:21:50
dwogsi a écrit : d'apache? |
je suppose qu'il parle de ça quand il fait allusion aux 30 secondes.
Marsh Posté le 07-06-2007 à 14:38:36
C'est toujours moi. La fonction LOAD DATE INFILE qu'a proposé anapajari semble être la meilleure solution. Cependant, j'ai une erreur que je n'arrive absolument pas a voir, j'ai meme refait l'exemple montré sur un site parlant de cette fonction et mon erreur persiste....
ya une configuration particulière a avoir ?
Marsh Posté le 07-06-2007 à 14:44:01
ne nous donen surtout pas l'erreur en question , ca nous aiderai
Marsh Posté le 07-06-2007 à 16:13:16
Je pars du principe que vous etes des oufs, c'est tout
Ma requete :
LOAD DATA INFILE fichier.csv
INTO TABLE members
FIELDS
TERMINATED BY ';'
ENCLOSED BY
ESCAPED BY '\\'
LINES
STARTING BY ''
TERMINATED BY '\n'
(id, champ1, champ2)
L'erreur :
#1064 - Erreur de syntaxe pr�s de 'fichier.csv
INTO TABLE members
FIELDS
TERMINATED BY ';'' � la ligne 1
Marsh Posté le 05-06-2007 à 14:12:17
Voila, je dois effectuer une migration de données d'un fichier vers ma table (une ligne du fichier correspond a une insertion). Mon fichier est assez gros (plus de 10000 lignes). Pour l'instant, j'ai une requete du style
"INSERT INTO ma_table (... , ... , ...);" que j'éxécute en boucle (au meme moment que je récupère les lignes du fichier).
Le problème, c'est que cela prend un temps fou pour effectuer la migration (plus de 30 secondes).
J'avais donc pensé pouvoir concaténer tous les insert dans une seule énorme requête que je n'exécuterais qu'une seule fois, mais je n'y arrive pas... il semble que la fonction mysql_query() ne supporte pas plus d'une instruction par requête. Pourtant, quand je teste mon énorme requête dans l'interface de PhpMyAdmin, il arrive très bien à tout exécuter a la suite, et c'est beaucoup plus rapide que mon algo actuel (1 requete par instruction).
Voila, si quelqu'un a une solution, je suis au bord du gouffre la...