在PHP 中檢索並使用最後一行ID 進行跨表插入
跨不同表執行多次插入時,有必要檢索一個表中最後插入的ID,用作後續插入中的參考。在 PHP 中,使用 mysqli 擴展,此任務需要一些理解。
在您提供的程式碼中,您嘗試將 $mysqli->insert_id 的結果直接綁定到 table1 insert 語句中的影像欄位。然而,這種方法是不正確的,因為最後插入的 ID 應該從先前的插入語句中取得。
要正確檢索和使用最後插入的 ID,首先必須確保您的表具有自增字段,通常命名為 id。此欄位追蹤下一個可用整數值,用作新記錄的主鍵。
一旦有了自動遞增字段,您就可以使用 mysqli_insert_id($conn) 函數來檢索 ID最後插入的行。以下是一個範例:
$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(); }
在這個修正的程式碼中,我們先將一筆記錄插入到 table2 中,然後使用 mysqli_insert_id($conn) 檢索最後插入的 ID。然後,該 ID 將在後續插入 table1 的語句中用作影像欄位。
以上是如何在 PHP 中檢索並使用最後插入的 ID 進行跨表插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!