Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mendapatkan ID Auto-Incremented dengan Cekap Selepas INSERT dalam PHP/MySQL?

Bagaimana untuk Mendapatkan ID Auto-Incremented dengan Cekap Selepas INSERT dalam PHP/MySQL?

DDD
Lepaskan: 2024-12-08 04:12:10
asal
914 orang telah melayarinya

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

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

Memasukkan baris ke dalam jadual MySQL selalunya melibatkan keperluan untuk mendapatkan semula 'id' yang baru dijana untuk baris yang disisipkan. Lazimnya, ini memerlukan pertanyaan seterusnya untuk mengambil baris yang sepadan dengan data yang dimasukkan, tetapi kaedah ini memperkenalkan kemungkinan baris pendua dengan nilai 'id' yang berbeza-beza.

Pendekatan yang lebih cekap ialah memanfaatkan peningkatan automatik MySQL fungsi dan fungsi mysqli_insert_id() PHP. Fungsi ini membolehkan anda mendapatkan semula ID baris terakhir yang dimasukkan dalam sambungan semasa:

<?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);
?>
Salin selepas log masuk

Pendekatan ini menghapuskan risiko keadaan perlumbaan dan menyediakan cara yang boleh dipercayai untuk mendapatkan 'id' yang baru dimasukkan baris.

Teknik lain melibatkan pelaksanaan dua pertanyaan dalam satu transaksi, memanfaatkan LAST_INSERT_ID() MySQL kaedah:

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

Kaedah ini mengubah suai kedua-dua jadual dalam satu transaksi, memastikan data yang konsisten merentas jadual yang terjejas.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Auto-Incremented dengan Cekap Selepas INSERT dalam PHP/MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan