Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan ID Auto-Peningkatan Secara Cekap Selepas INSERT dalam PHP/MySQL?

Bagaimana untuk Mendapatkan ID Auto-Peningkatan Secara Cekap Selepas INSERT dalam PHP/MySQL?

Barbara Streisand
Barbara Streisandasal
2025-01-05 02:14:46311semak imbas

How to Efficiently Retrieve the Auto-Increment ID After an INSERT in PHP/MySQL?

Memasukkan Baris dan Mendapatkan 'id'nya dalam PHP/MySQL

Apabila memasukkan baris ke dalam jadual MySQL di mana medan 'id' meningkat secara automatik, mendapatkan semula 'id' baris yang dimasukkan ialah tugas biasa. Walaupun satu pendekatan melibatkan memasukkan baris dan kemudian membuat pertanyaan untuk baris yang sepadan, ini memperkenalkan keadaan perlumbaan yang berpotensi.

Penyelesaian: Menggunakan mysqli_insert_id()

Untuk mengelakkan isu ini, PHP menyediakan mysqli_insert_id( ) fungsi, yang secara langsung mendapatkan semula ID baris terakhir yang dimasukkan untuk sambungan MySQL yang diberikan. Kaedah ini memastikan bahawa ID diperoleh dengan pasti tanpa risiko keadaan perlumbaan atau keputusan pendua.

<?php
$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);
?>

Penyelesaian Alternatif: LAST_INSERT_ID()

Kaedah lain melibatkan penggunaan fungsi LAST_INSERT_ID() MySQL, yang boleh digunakan dalam operasi sisipan berbilang jadual. Dalam pendekatan ini, baris dimasukkan ke dalam berbilang jadual dan fungsi LAST_INSERT_ID() memastikan bahawa 'id' disebarkan merentasi semua jadual yang diubah suai dalam pertanyaan tunggal.

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

Nota: Setiap sambungan MySQL mengekalkan penjejakan 'id'nya sendiri, menghalang konflik antara sambungan yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Auto-Peningkatan Secara Cekap Selepas INSERT 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