J'insère une nouvelle ligne dans ma base de données avec ce code:
$data = array( 'key' => 'value' ); $this->getDbTable()->insert($data);
4 Réponses :
un gotcha. Lorsque vous appelez $ ceci-> getdbtable () -> insérer ($ données); code> Vous devez vous assurer que $ données incluez la "clé primaire" de votre table. Par exemple,
id = null code> s'il est auto-incrément. Sinon,
insert () code> ne renvoie pas le dernier identifiant inséré. p>
Merci cong - cela m'a sauvé -
Une note, cela est déjà marqué comme fixé en V1.11.6. Voir Framework.zend.com/issues/browse/zf-3837
Avez-vous essayé cela? Cela fonctionne également bien.
//just after you call your insert($data) function .. use this $lastInsertId = $this->getAdapter()->lastInsertId();
Essayez ci-dessous Code:
Pour insérer des données: P>
$this->tableGateway->lastInsertValue;
Que se passe-t-il si un autre utilisateur a inséré un enregistrement après, l'EtablissementValue dernier obtiendrait le dernier identifiant inséré en général ou pour la transaction de certaines transactions -.
Il y a aussi fonctionned code> la fonction de sorcière renvoie la prochaine nouvelle carte d'identité, de sorte que vous pouvez l'utiliser pour insérer une nouvelle ligne.
$id = $this->getDbTable->newId('table_name', 'id');
$data = array(
'id' => $id,
'data' => $data
);
$this->getDbTable->insertRow('table_name', $data);