Php 使用外键插入数据库

Php 使用外键插入数据库,php,mysql,sql,Php,Mysql,Sql,我有下列表格 tbl_用户id、用户名、密码id为pk并自动递增 tbl_userprofile-id、用户id、姓名、姓氏、性别、国籍、地址、手机、部门、电子邮件、问题、答案。 userid是tbl_userprofile中的外键,引用tbl_user中的id 我正在尝试将新用户插入tbl_userprofile。要在tbl_userprofile中获取userid,我的方法是使用select语句从tbl_user获取id,但我不确定如何构造WHERE子句 '从tbl_用户中选择id,其中*s

我有下列表格 tbl_用户id、用户名、密码id为pk并自动递增 tbl_userprofile-id、用户id、姓名、姓氏、性别、国籍、地址、手机、部门、电子邮件、问题、答案。 userid是tbl_userprofile中的外键,引用tbl_user中的id 我正在尝试将新用户插入tbl_userprofile。要在tbl_userprofile中获取userid,我的方法是使用select语句从tbl_user获取id,但我不确定如何构造WHERE子句

'从tbl_用户中选择id,其中*something*'、'$name'、'$names'、'$gender'、'$national'、'$address'、'$mobile'、'$department'、'$email'、'$question'、'$answer'; 如何构造WHERE子句?或者我可以用另一种方式来处理这个问题? 注意:我想我应该提到,tbl_user和tbl_userprofile的插入是由两个不同的脚本处理的,因为表单位于两个不同的页面上

您可以使用INSERT SELECT语句:

INSERT INTO tbl_userprofile (userid, name, surname, gender, nationality, address, mobile, department, email, question, answer) 
SELECT id, '$name', '$surname', '$gender', '$nationality', '$address','$mobile', '$department', '$email', '$question', '$answer'
FROM tbl_user 
WHERE *something*

tbl_用户和tbl_用户配置文件中的行之间是否始终存在一对一的关联?如果是,为什么它们是分开的表?是的,这是一对一的关联。我这样做是为了将登录详细信息与配置文件详细信息分开,但这与我正在做的不一样吗?我在构造where子句时遇到问题,因为表单位于不同的脚本上。例如,我可以使用用户名获取id,但是表单位于不同的脚本上。您使用的是插入到,而不是插入到选择。我想你的where子句可以在另一个话题中讨论。
INSERT INTO tbl_userprofile (userid, name, surname, gender, nationality, address, mobile, department, email, question, answer) 
SELECT id, '$name', '$surname', '$gender', '$nationality', '$address','$mobile', '$department', '$email', '$question', '$answer'
FROM tbl_user 
WHERE *something*