使用 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中文网其他相关文章!