Php 如何使用外键一次在2个mysql表中插入数据

Php 如何使用外键一次在2个mysql表中插入数据,php,mysql,Php,Mysql,我有两个mysql表tbl\u account和tbl\u user。我想使用一个表单将数据添加到两个表中。我想插入以下内容: tbl\u账户=账户id,账户名称,密钥 tbl\u用户=用户id,账户id,用户名 我正在做的是,在tbl\u账户中插入数据,然后从该表中获取account\u id,然后在tbl\u用户中插入相同的account\u id。我正在通过我在表单中传递的secret\u key获取account\u id。这是正确的方法还是简单的方法。请告知我认为,将其放在两个表中比先

我有两个mysql表
tbl\u account
tbl\u user
。我想使用一个表单将数据添加到两个表中。我想插入以下内容:

tbl\u账户
=
账户id
账户名称
密钥

tbl\u用户
=
用户id
账户id
用户名


我正在做的是,在
tbl\u账户
中插入数据,然后从该表中获取
account\u id
,然后在
tbl\u用户
中插入相同的
account\u id
。我正在通过我在表单中传递的
secret\u key
获取
account\u id
。这是正确的方法还是简单的方法。请告知

我认为,将其放在两个表中比先插入、读出然后再插入更容易

所以我会这样做:

$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';");

插入后如何获取
帐户\u id
?@D.Kasipovic我通过secret\u ket获取它,这是一个随机字符串。我也会更新我的问题这是正确的方法,除非您使用
从tbl\u account ORDER BY account\u id DESC LIMIT 1中选择account\u id来获取最后一个密钥。这是获取最后一个插入id的错误方法,因为从您的插入到您的选择查询,其他人可能会添加一行,而您将获取错误的最后一个id。Mysql具有函数
last\u insert\u id()
,您可以使用该函数,如
select last\u insert\u id()
获取id。如果
密钥
是唯一的且已索引,则您的方法也可以。是的,我不想获取的最后一个id,因为可能有超过1个用户同时添加数据。您可以使用mysql
UUID()
或php加密函数或散列之一,因为使用经过测试和验证的函数通常是个好主意,可以在更大程度上保证唯一性。您如何知道
$account\u id
是什么?这与$user\u id的值相同,不是吗?