Maison > base de données > tutoriel mysql > Comment récupérer le dernier ID auto-incrémenté après une opération d'insertion dans CodeIgniter Active Record ?

Comment récupérer le dernier ID auto-incrémenté après une opération d'insertion dans CodeIgniter Active Record ?

Mary-Kate Olsen
Libérer: 2024-11-04 22:17:02
original
906 Les gens l'ont consulté

How to Retrieve the Last Auto-Incremented ID After an Insert Operation in CodeIgniter Active Record?

Obtention du dernier identifiant auto-incrémenté avec l'enregistrement actif CodeIgniter

Question :

Vous Vous essayez de récupérer le dernier ID auto-incrémenté après avoir effectué une opération d'insertion à l'aide de l'Active Record de CodeIgniter, mais la méthode add_post() de votre modèle renvoie une valeur vide.

À l'intérieur du contrôleur :

<code class="php">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);
}</code>
Copier après la connexion

À l'intérieur du modèle :

<code class="php">function add_post($post_data){
    $this->db->trans_start();
    $this->db->insert('posts',$post_data);
    $this->db->trans_complete();
    return $this->db->insert_id();
}</code>
Copier après la connexion

Réponse :

Le problème réside dans l'ordre de opérations dans votre méthode add_post() dans le modèle. Pour récupérer correctement le dernier ID auto-incrémenté après l'opération d'insertion, vous devez :

  1. Effectuer d'abord l'opération d'insertion, en utilisant le $this->db->insert('posts', $post_data).
  2. Ensuite, récupérez le dernier ID inséré à l'aide de la méthode $this->db->insert_id().
  3. Renvoyer le dernier ID inséré comme résultat de la Méthode add_post().

Solution :

<code class="php">function add_post($post_data){
    $this->db->insert('posts', $post_data);
    $insert_id = $this->db->insert_id();

    return $insert_id;
}</code>
Copier après la connexion

Remarque :

Si vous effectuez plusieurs insertions dans une seule transaction, vous pouvez utiliser les méthodes $this->db->trans_start() et $this->db->trans_complete() pour commencer et terminer la transaction.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal