Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mendapatkan dan Menggunakan ID Terakhir yang Disisipkan untuk Sisipan Merentas Jadual dalam PHP?

Bagaimana untuk Mendapatkan dan Menggunakan ID Terakhir yang Disisipkan untuk Sisipan Merentas Jadual dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-02 06:56:10
asal
561 orang telah melayarinya

How to Retrieve and Use the Last Inserted ID for Cross-Table Inserts in PHP?

Mengambil dan Menggunakan Last Row ID untuk Sisipan Merentas Jadual dalam PHP

Apabila melakukan berbilang sisipan merentas jadual yang berbeza, ia menjadi perlu untuk mendapatkan semula ID yang dimasukkan terakhir daripada satu jadual untuk digunakan sebagai rujukan dalam sisipan berikutnya. Dalam PHP, menggunakan sambungan mysqli, tugasan ini memerlukan sedikit pemahaman.

Dalam kod yang anda berikan, anda cuba untuk mengikat terus hasil $mysqli->insert_id ke medan imej dalam penyata sisipan table1 anda . Walau bagaimanapun, pendekatan ini tidak betul kerana ID yang dimasukkan terakhir harus diperoleh daripada pernyataan sisipan sebelumnya.

Untuk mendapatkan semula dan menggunakan ID yang dimasukkan terakhir dengan betul, anda mesti terlebih dahulu memastikan bahawa jadual anda mempunyai medan kenaikan automatik, biasanya dinamakan id. Medan ini menjejaki nilai integer yang tersedia seterusnya untuk digunakan sebagai kunci utama bagi rekod baharu.

Setelah anda mempunyai medan penambahan automatik, anda boleh menggunakan fungsi mysqli_insert_id($conn) untuk mendapatkan ID bagi baris terakhir yang disisipkan. Berikut ialah contoh:

$username = 'user1';
$fname = 'John';
$lname = 'Doe';

// Insert into table2
$insert = "INSERT INTO table2 (username) 
VALUES (?)";

if ($stmt = $mysqli->prepare($insert)) {
    $stmt->bind_param('s', $username);
    $stmt->execute();
}

// Retrieve last inserted ID for image
$last_id = mysqli_insert_id($conn);

// Insert into table1
$insert = "INSERT INTO table1 (username, firstname, lastname, image) 
VALUES (?, ?, ?, $last_id)";

if ($stmt = $mysqli->prepare($insert)) {
    $stmt->bind_param('sss', $username, $fname, $lname);
    $stmt->execute();
}
Salin selepas log masuk

Dalam kod yang diperbetulkan ini, kami mula-mula memasukkan rekod ke dalam jadual2, dan kemudian kami mendapatkan semula ID yang dimasukkan terakhir menggunakan mysqli_insert_id($conn). ID ini kemudiannya digunakan sebagai medan imej dalam pernyataan sisipan berikutnya ke dalam jadual1.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan dan Menggunakan ID Terakhir yang Disisipkan untuk Sisipan Merentas Jadual dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan