Php 如何使用外键一次在2个mysql表中插入数据
我有两个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。这是正确的方法还是简单的方法。请告知我认为,将其放在两个表中比先
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个用户同时添加数据。您可以使用mysqlUUID()
或php加密函数或散列之一,因为使用经过测试和验证的函数通常是个好主意,可以在更大程度上保证唯一性。您如何知道$account\u id
是什么?这与$user\u id的值相同,不是吗?