2014-03-27 58 views
0

我有2個mysql表tbl_accounttbl_user。我想用一種形式將數據添加到兩個表中。我想插入以下,如何在一個外鍵的情況下一次插入2個mysql表中的數據

tbl_account =account_idaccount_namesecret_key

tbl_user =user_idaccount_iduser_name

我在做什麼,在tbl_account插入數據獲取,然後account_id,然後在tbl_user中插入相同的account_id。我通過secret_key取得account_id,我通過表單傳遞。這是正確的方式還是有任何簡單的方法來做到這一點。請指教

+0

您如何插入後獲取了'account_id'? –

+0

@ D.Kasipovic我通過一個隨機字符串secret_ket得到它。我更新了我的問題 – Arif

+3

這是正確的方法,除非您使用'SELECT account_id FROM tbl_account ORDER BY account_id DESC LIMIT 1'來獲取最後一個鍵。這是獲取最後一個插入的id的錯誤方法,因爲從插入到選擇查詢的時候,其他人可能會添加一行,並且您最終會得到錯誤的id。 Mysql具有'LAST_INSERT_ID()'函數,您可以像使用'SELECT LAST_INSERT_ID()'一樣使用該函數來獲取id。如果'secret_key'是唯一且索引的,你的方法也可以。 –

回答

0

在我看來,將它放在2個表格中,而不是插入到第一個表格中,然後再次插入它會更容易。

,所以我會做這樣的事情:

$con = mysqli_connect("host","username","password","database"); 
mysqli_query($con,"INSERT INTO `tbl_account` (account_id, account_name) VALUES ('$account_id', '$account_name';"); 
mysqli_query($con,"INSERT INTO `tbl_user` (user_id , account_id, user_name) VALUES ('user_id', '$account_id', '$account_name';"); 
+1

你怎麼知道'$ account_id'是什麼? –

+0

這將是相同的價值$ user_id不會嗎? – Mickael

相關問題