Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [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

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

Reply #2 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 ?

 
Page
  1. Transaction + prepareDaoFromControls + recuperation valeur apres un INSERT