ホームページ > データベース > mysql チュートリアル > CodeIgniter アクティブ レコードでの挿入操作後に最後に自動インクリメントされた ID を取得する方法

CodeIgniter アクティブ レコードでの挿入操作後に最後に自動インクリメントされた ID を取得する方法

Mary-Kate Olsen
リリース: 2024-11-04 22:17:02
オリジナル
841 人が閲覧しました

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

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 を正しく取得するには、次の手順を実行する必要があります。

  1. $this->db->insert('posts', $post_data) メソッド。
  2. 次に、$this->db->insert_id() メソッドを使用して、最後に挿入された ID を取得します。
  3. 最後に挿入された ID を、 add_post() メソッド。

解決策:

<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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート