mysqli_insert_id dengan Perhubungan Kunci Asing
Apabila bekerja dengan berbilang jadual yang melibatkan perhubungan utama asing, adalah penting untuk mengaitkan data dengan betul antara mereka. Artikel ini menangani isu mendapatkan semula ID yang dimasukkan terakhir daripada satu jadual (jadual2) dan menggunakannya untuk memasukkan baris ke dalam jadual lain (jadual1).
Masalah:
Kod cuba untuk mengikat ID yang dimasukkan terakhir dari jadual2 ke lajur imej dalam jadual1 menggunakan $image = $mysqli->insert_id. Walau bagaimanapun, pendekatan ini gagal, menghalang perkaitan yang betul antara jadual.
Penyelesaian:
Untuk menyelesaikan isu ini, langkah pertama ialah memastikan lajur ID dalam jadual2 ditakrifkan sebagai medan kenaikan automatik. Seterusnya, gunakan mysqli_insert_id() untuk mendapatkan semula ID yang dimasukkan terakhir daripada jadual2. Berikut ialah kod yang diubah suai:
$last_id = mysqli_insert_id($mysqli); // Get last inserted ID from table2 $stmt = $mysqli->prepare(" INSERT INTO table1 (username, firstname, lastname, image) SELECT ?,?,?,image FROM table2 t2 WHERE username = ? AND t2.id = ? "); $stmt->bind_param('sssss', $username, $fname, $lname, $username, $last_id); $stmt->execute();
Fungsi mysqli_insert_id() menangkap ID yang dimasukkan terakhir daripada jadual2 dan mengikatnya pada lajur imej dalam jadual1 menggunakan $last_id. Ini memastikan bahawa imej dikaitkan dengan betul dengan nama pertama, nama keluarga dan nama pengguna dalam jadual1, mengekalkan hubungan kunci asing antara kedua-dua jadual.
Atas ialah kandungan terperinci Bagaimana Menggunakan `mysqli_insert_id()` dengan Perhubungan Utama Asing dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!