Salut les gars,
je chercher a exécuter plusieurs commandes SQL en une seule requête (avec des custom queries) sous Cake 3, vous avez une idée pour y arriver ? car par défaut ca exécute une seule requête a la fois, voici un exemple avec l'objet PDO en temps normal :
http://goo.gl/lLYibM
mais moi, bien évidemment je veux le faire sous cake 3, pour ne pas créer une autre connexion et tout le tralala, voici la fonction pour exécuter des commandes sql sous cake 3 :
http://goo.gl/wEfqLL
voila, et merci d'avance :)

3 réponses


Bonjour,

utilise une transaction , c'est fait pour.

Cela t'assurera en plus la cohérence de ta base.

Cordialement

Antho

wYm
Auteur

salut @antho07 :), merci pour ta réponse, mais est ce que c'est possible d’écrire une procédure avec la fonction execute :
http://goo.gl/9uItwY
moi je ne pense pas ^^, en tout cas voici mon code SQL que je veux exécuter : http://pastebin.com/HMiGWeiZ, si t'as une solution merci de me donner un exemple, voila et merci encore :).

Ce que tu veux faire c'est une procédure stockée.

Les procédures stockées sont disponibles depuis la version 5 de MySQL, et permettent d'automatiser des actions, qui peuvent être très complexes.

Une procédure stockée est en fait une série d'instructions SQL désignée par un nom. Lorsque l'on crée une procédure stockée, on l'enregistre dans la base de données que l'on utilise, au même titre qu'une table par exemple. Une fois la procédure créée, il est possible d'appeler celle-ci, par son nom. Les instructions de la procédure sont alors exécutées.

Contrairement aux requêtes préparées, qui ne sont gardées en mémoire que pour la session courante, les procédures stockées sont, comme leur nom l'indique, stockées de manière durable, et font bien partie intégrante de la base de données dans laquelle elles sont enregistrées.

Donc ce que tu veux faire c'est une procédure stockée.

Tu peux crée ta procédure dans mysql et après l’exécutée avec cake.
Ou alors il va falloir modifier ta requête en transaction.