Bagaimana untuk Mendapatkan ID Auto-Increment Terakhir Selepas Operasi Sisipan dalam Rekod Aktif CodeIgniter?

Mary-Kate Olsen
Lepaskan: 2024-11-04 22:17:02
asal
805 orang telah melayarinya

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

Mendapatkan ID Auto-Tambahan Terakhir dengan Rekod Aktif CodeIgniter

Soalan:

Anda sedang cuba untuk mendapatkan ID auto-increment terakhir selepas melakukan operasi sisipan menggunakan Rekod Aktif CodeIgniter, tetapi kaedah add_post() dalam model anda mengembalikan nilai kosong.

Di Dalam Pengawal:

<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>
Salin selepas log masuk

Di Dalam Model:

<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>
Salin selepas log masuk

Jawapan:

Masalahnya terletak pada susunan operasi dalam kaedah add_post() anda dalam model. Untuk mendapatkan semula ID auto-increment terakhir dengan betul selepas operasi sisipan, anda perlu:

  1. Lakukan operasi sisipan dahulu, menggunakan $this->db->insert('posts', kaedah $post_data).
  2. Kemudian, dapatkan ID yang terakhir dimasukkan menggunakan kaedah $this->db->insert_id().
  3. Kembalikan ID yang terakhir dimasukkan sebagai hasil daripada kaedah add_post().

Penyelesaian:

<code class="php">function add_post($post_data){
    $this->db->insert('posts', $post_data);
    $insert_id = $this->db->insert_id();

    return $insert_id;
}</code>
Salin selepas log masuk

Nota:

Jika anda membuat persembahan berbilang sisipan dalam satu transaksi, anda boleh menggunakan kaedah $this->db->trans_start() dan $this->db->trans_complete() untuk memulakan dan menamatkan transaksi.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Auto-Increment Terakhir Selepas Operasi Sisipan dalam Rekod Aktif CodeIgniter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan