Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
J'aimerais récupérer la valeur générée par mySql d'une colonne de clé primaire auto incrémentée.
voilà ce que j'ai trouvé dans le manuel :
Si votre table a été définie avec une clé auto-incrémentée, alors vous pouvez appeler la méthode lastInsertId() après une opération d'insertion. Cette méthode retourne la valeur auto-incrémentée, générée dans le cadre de la connexion au SGBD.
et le code qui va avec :
$db->insert('bugs', $data); $id = $db->lastInsertId();
Le seul problème, c'est que pour les insert, j'utilise des Rows.
Mon modèle :
class Client extends Zend_Db_Table_Abstract{ protected $_name = 'CLIENTS'; protected $_primary ='NUMERO'; protected $_referenceMap = array( rLocalite'=>array( 'columns'=>'NUM_LOCALITE', 'refTableClass'=>'Localite', 'refColumns'=>'NUMERO'));
Mon Insert :
$newClient = new Client(array('db'=>'my_db')); $rowClient = $newClient->createRow(); $rowClient->NUMERO = $form->getValue('idClient'); $rowClient->Nom = $form->getValue('nom'); $rowClient->Save();
Le problème c'est que je ne peux pas faire un $rowClient->lastInsertId();
Dernière modification par fredouille312 (29-03-2009 22:08:09)
Hors ligne
mais tu peut faire :
$newClient = new Client(array('db'=>'my_db')); $rowClient = $newClient->createRow(); $rowClient->NUMERO = $form->getValue('idClient'); $rowClient->Nom = $form->getValue('nom'); $rowClient->Save(); $id = $rowClient->id ---------> "id est ta clé primaire dans ta table"
Hors ligne
C'est logique, j'y avais pas pensé merci.
Hors ligne