簡體   English   中英

插入LAST_INSERT_ID問題

[英]insert LAST_INSERT_ID issue

所以我有2個查詢,我想在php中執行。 但是我得到一個錯誤。 第一個查詢中的第一個id是auto inc,第二個查詢中的第二個id是nt auto inc,但是它通過外鍵連接到第一個。 我想在執行查詢時為它們兩個捕獲相同的ID。 但是會彈出此錯誤。

#1452 -不能添加或更新子行,外鍵約束失敗( eangelerelationships ,約束relationships_ibfk_3外鍵( id )參考文獻nodesid )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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM