Bonjour,
Je cherche a executer plusieurs INSERT dans une seule requete séparé par des ";". Est-ce possible ? Je souhaite faire ça car je pense que ça serai plus rapide que de faire un mysql_query dans une boucle ?!
Merci
Bonjour,
Je cherche a executer plusieurs INSERT dans une seule requete séparé par des ";". Est-ce possible ? Je souhaite faire ça car je pense que ça serai plus rapide que de faire un mysql_query dans une boucle ?!
Merci
non, mysql ne supporte pas encore les requetes multiples.
Par contre, tu as une syntaxe pour inserer plusieurs lignes d'un coup :
Evite d'inserer plus de 1000 lignes d'un coup, mysql aime pas quand y en a trop quand meme ;o) mais tout depend de la taille des données dans chaque ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT table (col1, col2, ...) VALUES (val1, val2, ...), -- 1ere ligne (val3, val4, ...) -- 2eme ligne
Je n'ai pas la solution à ton problème, mais si ton sgbd et ton apache sont sur le meme serveur, je pense que l'otimisation n'en vaut pas la chandelle... En revanche, sur un serveur distant, je suppose que ça peut être interessant.
Sinon, je crois qu'il existe un moyen de traiter toutes tes requetes en bloc à un moment donné... Je m'en suis jamais servi et je ne sais pas comment on fait, mais le principe serait de buffuriser des requetes pour toutes les executé d'un seul coup... j'avais vu ça sur un article qui parlait de la création de panier pour site commerçant en PHP.
Si quelqu'un a deja entendu parler de ça, ça m'interesse également :p
mysql_query n'accepte effectivement pas les requêtes multiples. Par contre, si tu as PHP5, MySQL5 et la nouvelle API mysqli, tu peux utiliser mysqli_multi_query.
Ceci dit, si c'est juste pour insérer plusieurs lignes dans la même table, le + efficace est l'insert multi-lignes que Fladnag t'a montré.
Partager