我有一个包含2个表的数据库。第一个表(table1)有:
userId int not null auto_increment primary key
userEmail
userPassword
userId是我的主键,它是自动递增的。我的下一个表(表2)有:
userProfileId int not null auto_increment primary key
userAge
userGender
userId
userId(来自table2)是我引用table1(userId)的外键。有没有办法INSERT INTO两个表的所有信息,并让table2中的userId自动获取它从table1引用的主键?或者我必须为每个表执行多个INSERTS并明确地使我的外键具有相同的值。
答案 0 :(得分:0)
您可以使用mysql的“Last_insert_id”,如下所示 -
<?php
$user_query="INSERT INTO accounts (userId,userEmail,userPassword) VALUES (NULL,'saving@gmail.com','XXXXXXXXX')";
$profile_query="INSERT INTO transactions(userProfileId,userAge,userGender,userId) VALUES (NULL,25,'m'LAST_INSERT_ID)";
$a_query=mysql_query($user_query);
$t_query=mysql_query($profile_query);
?>
注意:不推荐使用mysql_ *。相反,您可以使用PDO语句。
Reff:http://in3.php.net/manual/en/function.mysql-insert-id.php
Reff:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id