comment obtenir le dernier id inséré après la requête d'insertion dans codeigniter active record
J'ai une requête d'insertion (active record de style) utilisé pour insérer les champs de formulaire dans une table MySQL. Je veux obtenir la dernière auto-incrémenté id pour l'opération d'insertion comme valeur de retour de ma requête mais j'ai quelques problèmes avec elle.
À l'intérieur du contrôleur:
function add_post(){
$post_data = array(
'id' => '',
'user_id' => '11330',
'content' => $this->input->post('poster_textarea'),
'date_time' => date("Y-m-d H:i:s"),
'status' => '1'
);
return $this->blog_model->add_post($post_data);
}
Et à l'intérieur de modèle:
function add_post($post_data){
$this->db->trans_start();
$this->db->insert('posts',$post_data);
$this->db->trans_complete();
return $this->db->insert_id();
}
Je ne reçois rien comme le retour de la add_post dans le modèle
- Pour ceux qui se demandent,
db->insert_id()
retournefalse
après undb->trans_complete()
. Assurez-vous d'obtenir votreinsert_id()
's avant de finaliser la transaction. - Double Possible de CodeIgniter activerecord, récupérer le dernier id inséré?
- Quelqu'un s'il vous plaît marquer des doublons.
Vous devez vous connecter pour publier un commentaire.
Essayer cette
Dans le cas de plusieurs inserts vous pouvez utiliser
Une transaction n'est pas nécessaire ici, cela devrait suffire:
De la la documentation:
Par conséquent, vous pouvez utiliser quelque chose comme ceci:
parce que vous avez initié la Transaction sur l'insertion de données de sorte,
Le premier contrôle de la transaction effectuée ou non. une fois que vous commencez l'opération, elle doit être validée ou la restauration, selon le statut de la transaction;
ci-dessus, nous avons mobilisé les données sur le succès de la transaction, même vous obtenir le timestamp
Vous devez utiliser
$lastId = $this->db->insert_id();