Bidang 'id' pada tabel saya otomatis bertambah ketika saya memasukkan satu baris. Saya ingin menyisipkan baris dan kemudian mendapatkan ID itu.
Saya akan melakukannya seperti yang saya katakan, tetapi apakah ada cara saya bisa melakukannya tanpa khawatir tentang waktu antara memasukkan baris dan mendapatkan id?
Saya tahu saya dapat meminta database untuk baris yang cocok dengan informasi yang dimasukkan, tetapi ada perubahan besar akan ada duplikat, dengan satu-satunya perbedaan adalah id.
mysql_insert_id() will convert the return type of the native MySQL C API function mysql_insert_id() to a type of long (named int in PHP). If your AUTO_INCREMENT column has a column type of BIGINT (64 bits) the conversion may result in an incorrect value. Instead, use the internal MySQL SQL function LAST_INSERT_ID() in an SQL query. For more information about PHP's maximum integer values, please see the integer documentation.
\Fungsi MySQL
LAST_INSERT_ID()
tidak hanya apa yang Anda butuhkan: ia mengambil id yang dimasukkan selama sesi ini . Jadi aman untuk digunakan, bahkan jika ada proses lain (orang lain memanggil skrip yang sama persis, misalnya) memasukkan nilai ke dalam tabel yang sama.Fungsi PHP
mysql_insert_id()
melakukan hal yang sama seperti memanggilSELECT LAST_INSERT_ID()
denganmysql_query()
.sumber
echo mysql_insert_id(); mysql_query('SELECT LAST_INSERT_ID(600)'); echo mysql_insert_id(); mysql_query('SELECT LAST_INSERT_ID()');
Yang keduamysql_insert_id()
tidak mencerminkan 600, di mana seperti yangmysql_query('SELECT LAST_INSERT_ID()')
akan. Untuk mendapatkanmysql_insert_id()
agar mencerminkan perubahan Anda harus terlebih dahulu melakukan penyisipan atau pembaruan (yang dapat mempengaruhi 0 baris). Lihat paragraf terakhir: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-idMengenai situs web PHP, mysql_insert_id sekarang sudah tidak digunakan lagi dan kita harus menggunakan PDO. Untuk melakukan ini dengan PDO, lanjutkan sebagai berikut:
sumber
Seperti yang dikatakan @NaturalBornCamper, mysql_insert_id sekarang sudah tidak digunakan lagi dan tidak boleh digunakan. Opsi sekarang untuk menggunakan PDO atau mysqli. NaturalBornCamper menjelaskan PDO dalam jawabannya, jadi saya akan menunjukkan bagaimana melakukannya dengan MySQLi ( Peningkatan MySQL ) menggunakan mysqli_insert_id .
Lihatlah dokumentasi PHP untuk lebih banyak contoh: http://php.net/manual/en/mysqli.insert-id.php
sumber
Saya hanya ingin menambahkan detail kecil tentang
lastInsertId()
;Saat memasukkan lebih dari satu baris pada saat itu, itu tidak mengembalikan Id terakhir , tetapi Id pertama dari koleksi sisipan terakhir.
Perhatikan contoh berikut
Yang terjadi di sini adalah saya mendorong
my_table
dua baris baru. Id tabel adalah peningkatan otomatis. Di sini, untuk pengguna yang sama, saya menambahkan dua baris dengan yang berbedavarNumb
.Nilai gema di akhir akan sama dengan id dari baris di mana
varNumb=1
, yang berarti bukan id dari baris terakhir , tetapi id dari baris pertama yang ditambahkan dalam permintaan terakhir.sumber
Sebuah contoh.
Baris kode
$course_id = $query_new->insert_id;
akan menampilkan ID dari baris yang dimasukkan terakhir. Semoga ini membantu.sumber
Coba seperti ini Anda bisa mendapatkan jawabannya:
Lihat tautan berikut:
http://www.w3schools.com/php/func_mysqli_insert_id.asp
http://php.net/manual/en/function.mysql-insert-id.php
Harap perhatikan juga bahwa ekstensi ini sudah tidak digunakan lagi dalam PHP 5.5 dan dihapus dalam PHP 7.0
sumber
Saya menemukan jawaban di tautan di atas http://php.net/manual/en/function.mysql-insert-id.php
Jawabannya adalah:
sumber
mysql
jawaban tidak aman , tidak pernah menggunakannya.Coba ini ... itu berhasil untuk saya!
sumber
Jawaban lain yang mungkin adalah:
Saat Anda menentukan tabel, dengan kolom dan data yang akan dimilikinya. ID kolom dapat memiliki properti AUTO_INCREMENT .
Dengan metode ini, Anda tidak perlu khawatir tentang id , itu akan dibuat secara otomatis .
Misalnya (diambil dari w3schools )
Semoga ini bermanfaat bagi seseorang.
Sunting: Ini hanya bagian di mana Anda menentukan cara membuat ID otomatis, untuk mendapatkannya setelah dibuat, jawaban sebelumnya sebelumnya benar.
sumber