Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan `mysqli_insert_id()` dengan Perhubungan Utama Asing dengan Betul?

Bagaimana Menggunakan `mysqli_insert_id()` dengan Perhubungan Utama Asing dengan Betul?

Linda Hamilton
Lepaskan: 2024-12-30 17:15:09
asal
412 orang telah melayarinya

How to Correctly Use `mysqli_insert_id()` with Foreign Key Relationships?

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

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!

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