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
DDDasal
2024-12-08 04:12:10907semak imbas

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

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())");
?>

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