Maison >base de données >tutoriel mysql >Comment obtenir l'ID auto-incrémenté après l'insertion de données avec l'enregistrement actif de CodeIgniter ?

Comment obtenir l'ID auto-incrémenté après l'insertion de données avec l'enregistrement actif de CodeIgniter ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-04 21:24:02344parcourir

How to Get the Auto-Incremented ID After Inserting Data with CodeIgniter's Active Record?

Comment récupérer l'ID auto-incrémenté après une requête d'insertion dans CodeIgniter Active Record

Lors de l'utilisation de la bibliothèque Active Record de CodeIgniter pour les opérations de base de données, vous devrez peut-être récupérer le dernier ID auto-incrémenté inséré pour une opération d'insertion. Cet article explore les moyens possibles d'y parvenir.

Problème

Dans votre application CodeIgniter, vous tentez d'insérer des données dans une table MySQL à l'aide de la méthode insert() d'Active Record dans un modèle. Cependant, votre code ne renvoie pas l'ID auto-incrémenté attendu.

Solution

Pour récupérer le dernier ID auto-incrémenté inséré, suivez ces étapes :

  1. Mettez à jour votre modèle pour exécuter d'abord l'opération d'insertion, puis récupérez l'ID immédiatement après :
<code class="php">function add_post($post_data){
   $this->db->insert('posts', $post_data);
   $insert_id = $this->db->insert_id();

   return  $insert_id;
}</code>
  1. Si vous devez exécuter plusieurs insertions dans une transaction, entourez les opérations avec trans_start() et trans_complete() :
<code class="php">$this->db->trans_start();
$this->db->insert('posts', $post_data);
$insert_id = $this->db->insert_id();
$this->db->trans_complete();

return  $insert_id;</code>

Autres considérations

  • La méthode insert_id() de CodeIgniter renvoie 0 si le l'insertion n'a pas réussi.
  • Si votre table de base de données n'a pas de colonne à incrémentation automatique, insert_id() renverra 0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn