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.

Dennis Decoene
sumber
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

Dennis Decoene
sumber
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
37

Terakhir masukkan id berarti Anda bisa mendapatkan id kenaikan otomatis yang disisipkan dengan menggunakan metode ini dalam catatan aktif,

$this->db->insert_id() 
// it can be return insert id it is 
// similar to the mysql_insert_id in core PHP

Anda dapat merujuk tautan ini Anda dapat menemukan lebih banyak barang.

Informasi dari mengeksekusi kueri

Raja Ram T
sumber
tautannya salah. mohon perbaiki tautannya. tautan baru codeigniter.com/userguide3/database/helpers.html
Shaiful Islam
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}'];
Bayi Rosario
sumber
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()
Madhur
sumber
6

$this->db->insert_id();

Coba ini Sebagai pertanyaan yang Anda inginkan.

Akash Tyagi
sumber
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.
Nikkolai Fernandez
sumber
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;
}
Raham
sumber
@Dennis Decoene Anda juga dapat mengunjungi tautan ini ellislab.com/codeIgniter/user-guide .
Raham
3
$this->db->insert_id();

Mengembalikan nomor ID penyisipan saat melakukan sisipan basis data

Metode Pembantu Permintaan untuk codeigniter-3

Islam Shaiful
sumber
2
$this->db->insert_id()  

// tolong coba ini

Girish Ninama
sumber
Jawaban duplikat ini tidak menambah nilai baru ke halaman. Itu harus dihapus.
mickmackusa
1
if($this->db->insert('Your_tablename', $your_data)) {
    return $this->db->insert_id();
}
return false 
Nakendra Pun
sumber
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

Towsif
sumber