2012-04-26 148 views
0

我正在設計一個糖尿病管理系統,我的問題是關於在兩個表中插入新記錄。我有一個用戶表的字段: user_ID(PK),用戶名,密碼等 我也有配置文件表,它存儲有關用戶的個人信息。配置文件: User_ID(用戶表中的FK),名字,姓氏,地址等。插入一個新的記錄到MySQL表中,併爲多個表添加具有相同ID的新記錄

我已將user_id作爲外鍵存儲在配置文件表中,因爲我想讓用戶與其自己的配置文件關聯。例如。具有User_Id'3'的用戶名爲grover的人將擁有包含個人信息的個人資料,而個人資料表中的user_ID也將爲'3'。我希望以上是有道理的。我的問題是,當我將表單中的數據存儲到變量中時,我將如何編寫查詢以便創建新記錄,並將正確的字段存儲在正確的表中,使新記錄具有相同的user_ID用戶和配置文件表。

回答

0

試試看LAST_INSERT_ID函數。這會給你剛纔輸入的記錄的PK,也就是你的user_id,你可以相應的連接表

insert into Users values (null,'asdf','asdf',3,1); 
    Query OK, 1 row affected (0.00 sec) 

    mysql> select last_insert_id(); 
    +------------------+ 
    | last_insert_id() | 
    +------------------+ 
    |    1 | 
    +------------------+ 
    1 row in set (0.00 sec) 

你去那裏

+0

在使用,因此會是正確的做到以下幾點?插入用戶 (User_id,用戶名,密碼) values('','$ Username','$ Password'); 然後插入形式的其它部分到其他表如下: 插入到簡檔 (USER_ID,名字,姓氏) 值(「LAST_INSERT_ID()」,「$姓」,「$名字」); – 2012-04-26 17:34:00

+0

只要你確定沒有其他人(包括你)在這兩個調用之間插入數據到你的數據庫 – 2012-04-26 17:50:06

+0

有沒有其他選擇,因爲它可能是另一個記錄被創建?我不認爲會發生這種情況,因爲從註冊表中收集數據之後會有兩個連續的查詢。我會嘗試。 – 2012-04-26 18:02:16

相關問題