2012-04-26 76 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