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.