$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);
Lihat mysqli_insert_id()
.
Apa pun yang Anda lakukan, jangan masukkan lalu lakukan "SELECT MAX(id) FROM mytable
". Seperti yang Anda katakan, ini adalah kondisi balapan dan tidak perlu. mysqli_insert_id()
sudah memiliki fungsi ini.
Cara lain adalah dengan menjalankan kedua kueri sekaligus, dan menggunakan MySQL
LAST_INSERT_ID()
metode, di mana kedua tabel dimodifikasi sekaligus (dan PHP tidak memerlukan ID apa pun), seperti:
mysqli_query($link, "INSERT INTO my_user_table ...;
INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
Catatan bahwa Setiap koneksi melacak ID secara terpisah (jadi, konflik sudah dicegah).