Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Voila je tente d'ajouter des données à ma base de donnée et de récupérer par la même occasion le dernier id du champs que je viens d'ajouter.
Mon problème proviens du fait que le lastInsertId prend une valeur = 0 lorsque je l'appel...
Je ne comprend pas d'ou proviens ce problème
Voila le code source
public function newtopic1($data, $idCreator, $forumId, $type) { $insertData = array( 'titleTopic' => $data['title'], 'creatorTopic' => $idCreator, 'vuTopic' => 1, 'timeTopic' => time(), 'genreTopic' => $type, 'lastPostTopic' => 0, 'postTopic' => 0, ); $this->insert($insertData); return $this->getAdapter()->lastInsertId(); }
Cette fonction retourne 0 lorsque je l'exécute cependant toutes les valeurs sont bien ajouté dans la table avec un id bien différent de celui égale à 0.
Dernière modification par magmus (23-06-2010 15:15:53)
Hors ligne
Je dirais :
public function newtopic1($data, $idCreator, $forumId, $type) { $insertData = array( 'titleTopic' => $data['title'], 'creatorTopic' => $idCreator, 'vuTopic' => 1, 'timeTopic' => time(), 'genreTopic' => $type, 'lastPostTopic' => 0, 'postTopic' => 0, ); return $this->insert($insertData); }
En considérant que newtopic1 étend Zend_Db_Table_Abstract.
Hors ligne
C'est niquel ça marche enfin
Je vais pouvoir laisser mes cheveux tranquil m'intenant ^^
Hors ligne
le plus simple est de passer par Zend_Db_Table
tu dérive la classe pour en faire une classe à toi par exemple
Topic_Table
(il faut lui spécifier sur quelle table tu travaille)
du définie une classe d'objet Topic_Table_Row associé à ta classe table
que tu rempile avec tes valeurs
sur cet objet tu appel insert
et au joie bonheur après l'insert la clef primaire de ton objet contient la valeur de l'id
mieux si tu n'avait pas renseigné certain champs ils sont renseignés avec les valeurs par défaut
A+JYT
Hors ligne