Pb Transaction avec requetes en bloc

Répondre
Jullork
le 13/08/2008 à 10:42
Jullork
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écutés 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
Jullork
LupusMic
le 13/08/2008 à 11:28
LupusMic
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.

Tu as des messages d'erreur quand tu exécutes les requêtes ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Jullork
le 13/08/2008 à 11:47
Jullork
Non je n'obtiens pas de message d'erreur.
Si je force à placer le commit les requêtes ne sont pas exécutées.
Et c'est sur les test d'évaluation du résultat de la requête que cela est bizarre :


$result = @mysql_query($requetes);
echo "#" . $result . "#"; => affiche : ##

Je vais regarder pour les fonctions multiquery.
Merci pour ton aide
Jullork
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours