[英]insert LAST_INSERT_ID issue
所以我有2個查詢,我想在php中執行。 但是我得到一個錯誤。 第一個查詢中的第一個id是auto inc,第二個查詢中的第二個id是nt auto inc,但是它通過外鍵連接到第一個。 我想在執行查詢時為它們兩個捕獲相同的ID。 但是會彈出此錯誤。
#1452 -不能添加或更新子行,外鍵約束失敗(
eangele
。relationships
,約束relationships_ibfk_3
外鍵(id
)參考文獻nodes
(id
)ON DELETE NO ACTION ON UPDATE NO ACTION)
$query = "insert into nodes(id,name,color,type,thumb)".
"values('','$nodename','#EBB056','star','$thumbFile')";
$result = $db -> Execute($query);
$querytwo = "insert into relationships(id,goingto,data)".
"values(LAST_INSERT_ID(),'$category','')";
$resulttwo = $db -> Execute($querytwo);
'LAST_INSERT_ID()'
是文字字符串。 您想使用不帶撇號的values(LAST_INSERT_ID(),
如果這不起作用,則可以使用與要獲取最后插入ID的MySQL API相對應的php函數。 我也只看到它與SELECT
。 我認為它可以與VALUES
使用,但是如果不行,則可以始終執行插入/選擇:
INSERT INTO relationships(id, goingto, data)
SELECT LAST_INSERT_ID(), ?, ''
您的查詢容易被注入。 您應該參數化它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.