CodeIgniter アクティブ レコードを使用して最後の自動インクリメント ID を取得する
質問:
あなたCodeIgniter のアクティブ レコードを使用して挿入操作を実行した後、最後に自動インクリメントされた 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>
注:
を実行している場合1 つのトランザクションで複数の挿入を行う場合は、$this->db->trans_start() メソッドと $this->db->trans_complete() メソッドを使用してトランザクションを開始および終了できます。
以上がCodeIgniter アクティブ レコードでの挿入操作後に最後に自動インクリメントされた ID を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。