具有外键关系的mysqli_insert_id
在处理涉及外键关系的多个表时,正确关联它们之间的数据非常重要。本文解决了从一个表 (table2) 检索最后插入的 ID 并使用它向另一个表 (table1) 插入一行的问题。
问题:
代码尝试使用 $image = $mysqli->insert_id 将 table2 中最后插入的 ID 绑定到 table1 中的图像列。但是,这种方法会失败,导致表之间无法正确关联。
解决方案:
要解决此问题,第一步是确保 table2 中的 ID 列被定义为自增字段。接下来,使用 mysqli_insert_id() 从 table2 中检索最后插入的 ID。下面是修改后的代码:
$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();
mysqli_insert_id() 函数从 table2 中捕获最后插入的 ID,并使用 $last_id 将其绑定到 table1 中的图像列。这可以确保图像与 table1 中的名字、姓氏和用户名正确关联,从而保留两个表之间的外键关系。
以上是如何正确使用 mysqli_insert_id() 与外键关系?的详细内容。更多信息请关注PHP中文网其他相关文章!