Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan ID Baris yang Baru Dimasukkan dalam PHP/MySQL?

Bagaimana untuk Mendapatkan ID Baris yang Baru Dimasukkan dalam PHP/MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-04 20:05:19808semak imbas

How to Retrieve the ID of a Newly Inserted Row in PHP/MySQL?

Dapatkan ID Baris yang Disisipkan dalam PHP/MySQL

Apabila memasukkan baris ke dalam jadual MySQL dengan medan id peningkatan automatik, adalah penting untuk mendapatkan semula id yang baru dijana untuk operasi seterusnya.

Mengelakkan Perlumbaan Syarat

Satu pendekatan untuk mendapatkan id adalah dengan menanyakan pangkalan data untuk baris yang sepadan dengan maklumat yang dimasukkan. Walau bagaimanapun, kaedah ini memperkenalkan keadaan perlumbaan di mana baris lain boleh dimasukkan sebelum pertanyaan dilaksanakan, mengakibatkan keputusan yang tidak tepat.

Menggunakan mysqli_insert_id()

Penyelesaian yang boleh dipercayai ialah menggunakan LAST_INSERT_ID( MySQL) ) fungsi. Kaedah mysqli_insert_id() dalam PHP mengembalikan id terjana terakhir untuk sambungan semasa.

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);

Berbilang Pertanyaan dalam Satu Operasi

Pendekatan alternatif adalah untuk melaksanakan berbilang pertanyaan dalam satu operasi, mengambil kesempatan daripada kaedah LAST_INSERT_ID() MySQL. Ini memastikan bahawa id ditetapkan dengan betul walaupun apabila berbilang jadual terlibat.

mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");

Kaedah ini menghilangkan keperluan bimbang tentang keadaan perlumbaan dan menyediakan cara yang boleh dipercayai untuk mendapatkan semula id baris yang dimasukkan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Baris yang Baru Dimasukkan dalam PHP/MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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