- 1
[Opened] Transaction + prepareDaoFromControls + recuperation valeur apres un INSERT
Posted by ciblemedia on 07/25/2012 14:42
Bonjour,
J'ai 3 questions pour un seul traitement dans une fonction. Allez je me lance !
Premièrement : aprés que l'utilisateur ai soumit le formulaire, j'exécute la prepareDaoFromControls()
. Je voudrais avant d'exécuter l'insert, de lancer une transaction. Il est expliqué dans l'aide comment faire après un getConnection() mais je ne vois pas comment faire après le prepareDaoFromControls()
?
Deuxièmement : Après avoir effectué l'insert $result['dao']->insert($result['daorec']);
je voudrais m'assurer que l'insert a bien fonctionné. En mode développement, on voit bien dans le debug l'erreur mais je voudrais pouvoir le gérer. Dois-je faire ça ???
if(!$result['dao']->insert($result['daorec'])){ ... }
Troisièmement : Si l'ajout a fonctionné, je voudrais récupérer la valeur d'un champ de mon record qui est généré automatiquement par MySQL (ce champ n'est pas un autoincrement). J'ai essayé de faire $mavar = $result['daorec']->monchamp;
mais il me renvoi rien alors qu'en base j'ai bien une valeur...
En espérant qu'une âme charitable puisse me dépanner car ça fait 2 jours que je suis sur ce sujet mais en vain !
Dans l'attente de vous lire :) Yann
[Opened] Transaction + prepareDaoFromControls + recuperation valeur apres un INSERT
Posted by ciblemedia on 07/26/2012 15:38
Bonjour,
J'ai trouvé une solution pour le 3ème point mais je bloque toujours pour les 2 premiers points.
Si quelqu'un a un bout de piste ou LA solution, je suis preneur !
Yann
[Opened] Transaction + prepareDaoFromControls + recuperation valeur apres un INSERT
Posted by laurentj on 07/29/2012 15:06
Bonjour,
aprés que l'utilisateur ai soumit le formulaire, j'exécute la prepareDaoFromControls(). Je voudrais avant d'exécuter l'insert, de lancer une transaction
Tu fais comme la documentation le dit. Tu récupère la connection, et tu lance un beginTransaction() avant l'insert, et un commit() après. Mais note que cela ne sert à rien de faire une transaction si tu n’exécute qu'une seule requête...
Après avoir effectué l'insert $result['dao']->insert($result['daorec']); je voudrais m'assurer que l'insert a bien fonctionné.
Regarde la doc sur la valeur de retour de jDaoFacotryBase::insert() :-p
Si l'ajout a fonctionné, je voudrais récupérer la valeur d'un champ de mon record qui est généré automatiquement par MySQL (ce champ n'est pas un autoincrement).
Tu indiques alors la valeur par défaut dans la balise <property> correspondante, non ?
- 1