我有三個表,基本上向下級聯,如:多次插入查詢
- 話題
- 部分(引用主題ID)
- 第(引用主題ID和部分ID)
什麼是編寫mysql語句創建初始話題/部分/子部分的最佳方法,以便我可以獲取新創建的行的id(auto_incremented)並使用它們將它們插入到第二個?
編輯 我使用phpbb3的,如果讓說不上來一個巨大的差異,但我通常使用$ DB-sql_query()函數
我有三個表,基本上向下級聯,如:多次插入查詢
什麼是編寫mysql語句創建初始話題/部分/子部分的最佳方法,以便我可以獲取新創建的行的id(auto_incremented)並使用它們將它們插入到第二個?
編輯 我使用phpbb3的,如果讓說不上來一個巨大的差異,但我通常使用$ DB-sql_query()函數
從父母,下線。
然後你可以使用LAST_INSERT_ID(),或在SELECT INSERT:
INSERT INTO TOPIC
(topic_id, topic)
VALUES (DEFAULT, $topic);
INSERT INTO SECTION
(topic_id, section)
SELECT topic_id, $section
FROM TOPIC
WHERE topic = $topic
INSERT INTO SUBSECTION
(section_id, topic_id, subsection)
SELECT section_id, topic_id
FROM SECTION
WHERE section = $section
這個例子假設TOPIC.topic_id
,SECTION.section_id
和SUBSECTION
是AUTO_INCREMENT,主鍵列。
您可以使用mysql_insert_id()來獲得最後插入ID 。有關更多詳細信息,請參見reference。
就我所知,只有一種方法,就是自上而下。
要將小節添加到節中,您必須已經插入節。
要將主題添加到子部分,請確保先添加子部分。
在途中,您將跟蹤最後插入的ID(如果您剛剛創建了它),以便將它傳遞給線下的下一個實體。
我在概念上如何做到這一點,我試圖弄清楚如何從auto_increment中獲取並保存每個id並傳遞給下一個查詢..我想我應該更新該問題 – 2010-11-10 04:51:21
曼尼得到了具體的答案。 – BeemerGuy 2010-11-10 04:51:57
'$ db-> sql_query($ sql); $ db-> insert_id;'如果你的if($ db instanceof mysqli)' – ajreal 2010-11-10 05:09:57