PB transaction contenant plusieurs requêtes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PB transaction contenant plusieurs requêtes

par Sékiltoyai » 13 août 2008, 19:47

Quel moteur de tables je te demandais. InnoDB, ISAM ou MyISAM ?

par Jullork » 13 août 2008, 13:45

Je suis sous MySQL 4.1.9.

Une idée pourquoi ce lot de requêtes échoues ?

Sur un autre forum on m'a dit que "Normalement, depuis PHP tu devrais démarrer la transaction, puis effectuer les requêtes les unes après les autres puis terminer avec un commit.

Si tu veux mettre toutes les requêtes dans une seule chaîne, il faut utiliser les fonctions multiquery. Les fonctions habituelles ne supportent pas les multiqueries."

Qu'en penses-tu ?

par Sékiltoyai » 13 août 2008, 13:24

Tu es sur quel moteur de tables ?

PB transaction contenant plusieurs requêtes

par Jullork » 13 août 2008, 11:04

Bonjour,
Je rencontre un problème lors d'une transaction contenant plusieurs requêtes.

Mes requêtes sont générées en masse et sont toutes du même format.

Lorsque je lance une transaction avec une seule requête dans mon fichier source, le commit est bien exécuté.
Par contre, quand il y en a plusieurs, la transaction ne passe pas.

Pour vérifier que ma transaction était bonne, j'ai testé mon lot de requêtes générées directement sous MySQL : l'ajout de toutes les lignes est effectué (en une seule fois).

Résumons : Mes requêtes semblent bonnes car elles sont bien exécutées (manuellement).
Ma transaction fonctionne quand il n'y a qu'une requête mais elle échoue quand il y en a plusieurs.

D'où ma question : Peut-on exécuter plusieurs requetes d'insertion en une seule fois (au sein d'une transaction), lancée dans un script php ?

N'hésitez pas à me demander des nfos supplémentaires si je n'ai pas été clair.

Merci d'avance de vos réponses