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>
À 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>
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 :
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>
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!