我有一个UserLogin表供用户使用用户名和密码登录。我还有一个UserInfo表,其中包含其他30列中的地址,电话号码和信息。
在UserLogin表中创建用户时,我想将其UserLogin行与UserInfo表中的一行进行匹配,以便将用户详细信息存储在UserInfo表中。我的目标是使这些表具有匹配的主键ID,以便UserLoginID ='2493'和UserInfoID ='2493'。这样,这些表将一排一行地匹配,以使用户配置文件信息始终与他们的UserLogin帐户保持一致。
实现此目的的最佳方法(最佳实践)是什么?
用户登录表
-userID(主键)(Auto_Increment)
- 用户名
-密码
-电子邮件
-用户访问
用户信息表
-UserInfoID(主键)(Auto_Increment)
- 名字
- 姓
- 地址
- 电话号码
创建新的UserID时,我还希望创建一个UserInfoID并将其绑定到该UserID,以便当他们登录并输入其个人资料详细信息时,它将输入到UserInfo表中。
谢谢老式编码器!这就是我最终的结果,它可以完美地工作:
$stmt = $db->prepare('INSERT INTO UserLogin (username,password,email)
VALUES (:username, :password, :email)');
$stmt->execute(array(
':username' => $username,
':password' => $hashedpassword,
':email' => $email ));
$id = $db->lastInsertId('adminID');
include('includes/database.php');
$FirstName=$_POST['FirstName'];
$LastName=$_POST['LastName'];
$mysqli->query("INSERT INTO UserInfo(UserInfoID, FirstName, LastName)
VALUES ('$id', '$FirstName', '$LastName')");
最佳答案
有两种解决方案:
1)当您插入第一个表的记录时,您可以获取最后插入的ID,并将第二个表的UserInfoID保存为从第一个表获取的信息。
2)您可以在第二个表中创建一个新字段,即与第一个表(用户ID)相关的字段。当您在第二张表中插入记录时,您可以插入第二张表列中添加的第一张表的最后插入ID,即(用户ID)。
公式为:
mysql_insert_id();
关于php - 如何匹配USER表和USERINFO表记录一对一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57319570/