$stmt2 = $db->prepare("INSERT INTO
usertabbrige(`tabId`,`uId`)
VALUES
((LAST_INSERT_ID()),$userId)");
此查询有什么问题?它包含在我的第一个stmt中,它会将值插入到其他表中的uId(PK)中。 usertabbrige表包含一个字段uId,它是一个FK。
答案 0 :(得分:0)
请勿在查询中使用LAST_INSERT_ID()
。你不知道哪个插入语句在当前会话中是最后一个。您可以插入一个表格,如果您在其他查询中使用LAST_INSERT_ID()
,则实际上并不知道LAST_INSERT_ID()
来自何处。
我可以看到你正在使用PDO
。执行插入查询后,保存id:
$db->query("INSERT INTO ...");
$lastInsertedTabId = $db->lastInsertId;
在下一个准备好的陈述中使用它
$stmt2 = $db->prepare("INSERT INTO
usertabbrige(`tabId`,`uId`)
VALUES
($lastInsertedTabId ,$userId)");