使用CodeIgniter Active Record 獲取最後一個自動遞增的ID
問題:
你正在嘗試使用CodeIgniter 的Active Record 執行插入操作後檢索最後一個自動遞增的ID,但模型中的add_post() 方法會傳回空值。
控制器內部:
<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>
模型內部:
<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>
答案>
問題在於順序模型中add_post() 方法中的操作。要正確擷取插入操作後最後一個自增 ID,您需要:解決方案:
<code class="php">function add_post($post_data){ $this->db->insert('posts', $post_data); $insert_id = $this->db->insert_id(); return $insert_id; }</code>
注意:
如果您正在執行在單一交易中進行多次插入,您可以使用$this->db->trans_start() 和$this->db->trans_complete() 方法來開始和結束交易。以上是如何在 CodeIgniter Active Record 中執行插入操作後檢索最後一個自動遞增的 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!