2015-01-06 90 views
1

我試圖從不同的表中添加一些主鍵作爲外鍵在php中的查詢中的一個主表。MYSQL插入主鍵在另一個表中作爲外鍵

到目前爲止我:

$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar)" 
           . "VALUES (DEFAULT, 123, 123, '".$_SESSION['sId']."' , 123, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', 123," 
           . "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."')"); 

每一個「123」我要與其他表從我的數據庫現有的主鍵來代替。 這怎麼可能?

+0

子查詢可能是合適的,但您沒有提供包含主鍵的hte表的信息,也沒有提供與您要插入的記錄相關的hte表的信息。 – Jeeped

+0

@Jeeped 所有其他表都有一個整數作爲主鍵,至少有一列只有字符串。 我剛寫了「123」來檢查是否可以訪問/寫入數據庫 – Alex311

回答

1

您可以使用INSERT ... SELECT語法。

像這樣的東西anotherTable是你想插入的另一張表。

$result=$mysqli->query("INSERT INTO m_main (M_Id, M_T_Id, M_U_Id, M_P_Id, M_S_Id, M_Sp_Id, M_Ra_Id, M_F_Id, M_Hp, M_Rss, M_Kommentar) " 
        . "SELECT (DEFAULT, anotherTable.id, anotherTable.id, '".$_SESSION['sId']."' , anotherTable.id, '".$_SESSION['Sp_Id']."', '".$_POST['fragestellung']."', anotherTable.id," 
        . "'".$_POST['hp']."', $rss, '".$_POST['kommentar']."') FROM anotherTable"); 

如果需要的話,你還可以限制插入的行數爲m_main與在SELECT語句WHERE條款。

1

很久以前我問過這個問題。最後,我找到了一些時間來回答它,以防有人遇到同樣的問題。不知道爲什麼我想讓它變得如此複雜。 Subquerys答案:

+0

謝謝!這個帖子在過去3個小時裏被藏起來了?! :) – Eutherpy

相關問題