Kode activerkasi CodeIgniter, ambil id sisipan terakhir?


153

Apakah ada opsi untuk mendapatkan id insert terakhir dari catatan baru di CodeIgniter?

$last_id = $this->db->insert('tablename',
    array('firstcolumn' => 'value',
    'secondcolumn' => 'value')
);

Mengingat tabel terdiri dari id bidang (kenaikan otomatis) kolom pertama dan kolom kedua.

Dengan cara ini Anda dapat menggunakan id yang disisipkan dalam kode berikut.


4
Saya terus datang ke pertanyaan ini beberapa kali. Terima kasih banyak!
— giripp

Jawaban:


277

Memalukan untukku...

Saya melihat panduan pengguna dan fungsi pertama adalah$this->db->insert_id();

Ini juga berfungsi dengan sisipan activerecord ...

EDIT: Saya memperbarui tautan


29
userguide adalah teman terbaik Anda untuk hal-hal seperti ini. Saya telah menggunakan codeigniter selama 2+ tahun dan saya masih menemukan fungsi seperti ini yang tidak pernah saya ketahui.
— Tom Schlick

8
Pastikan untuk membungkus sisipan Anda dan fungsi ini dalam transaksi karena penjadwal kueri dapat menyisipkan objek lain sebelum menjalankan fungsi ini
— parker.sikand

3
tautan sudah mati, tautan diperbarui: ellislab.com/codeigniter/user-guide/database/helpers.html
— womd

Saya perlu menggunakan insert_id (), tetapi saya tidak tahu bahwa insert_id () diberikan untuk mendapatkan ID milik insert () sebelum itu! Maksud saya, apakah mungkin untuk mengambil ID milik sisipan lain () dalam permintaan lain?
— NM


11

untuk tabel khusus Anda tidak dapat menggunakan $ this-> db-> insert_id (). bahkan penyisipan terakhir yang terjadi jauh sebelumnya dapat diambil seperti ini. mungkin salah. tetapi bekerja dengan baik untuk saya

     $this->db->select_max('{primary key}');
     $result= $this->db->get('{table}')->row_array();
     echo $result['{primary key}'];

8

Daftar detail yang membantu dalam meminta id dan kueri adalah

Untuk mengambil Id yang terakhir disisipkan: Ini akan mengambil catatan terakhir dari tabel

$this->db->insert_id(); 

Mengambil kueri SQL, tambahkan ini setelah permintaan modal

$this->db->last_query()

6

$this->db->insert_id();

Coba ini Sebagai pertanyaan yang Anda inginkan.


6

Setelah permintaan Anda menyisipkan, gunakan perintah ini $this->db->insert_id();untuk mengembalikan id yang dimasukkan terakhir.

Sebagai contoh:

$this->db->insert('Your_tablename', $your_data);

$last_id =  $this->db->insert_id();

echo $last_id // assume that the last id from the table is 1, after the insert query this value will be 2.

5

Coba ini.

public function insert_data_function($your_data)
{
    $this->db->insert("your_table",$your_data);
    $last_id = $this->db->insert_id();
    return $last_id;
}

@Dennis Decoene Anda juga dapat mengunjungi tautan ini ellislab.com/codeIgniter/user-guide .
— Raham



1
if($this->db->insert('Your_tablename', $your_data)) {
    return $this->db->insert_id();
}
return false 

0

Dalam kode 3, Anda dapat melakukannya sebagai berikut:

if($this->db->insert("table_name",$table_data)) {
    $inserted_id = $this->db->insert_id();
    return $inserted_id;
}

Anda dapat memperoleh bantuan untuk Codeigniter 3 dari sini https://codeigniter.com/user_guide/database/helpers.html

Di Codeigniter 4, Anda bisa mendapatkan id yang dimasukkan terakhir sebagai berikut:

$builder = $db->table("your table name");
if($builder->insert($table_data)) {
    $inserted_id = $db->insertID();
    return $inserted_id;
}

Anda dapat memperoleh bantuan untuk Codeigniter 4 dari sini https://codeigniter4.github.io/userguide/database/helpers.html

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.