我有一个 UserLogin 表,供用户使用用户名和密码登录。我还有一个 UserInfo 表,其中包含地址、电话号码以及其他 30 列的信息。
在 UserLogin 表中创建用户时,我希望将其 UserLogin 行与 UserInfo 表中的行进行匹配,以便可以在 UserInfo 表中存储用户详细信息。我的目标是让这些表具有匹配的主键 ID,以便 UserLoginID = '2493' 和 UserInfoID = '2493'。这样,表格将逐行匹配,一一匹配,以确保用户个人资料信息始终与他们的 UserLogin 帐户结合起来。
实现这一目标的最佳方法(最佳实践)是什么?
用户登录表
- 用户ID(主键)(自动增量)
- 用户名
- 密码
- 电子邮件
- 用户访问
用户信息表
- UserInfoID(主键)(自动增量)
- 名字
- 姓氏
- 地址
- 电话号码
创建新的 UserID 时,我希望也创建一个 UserInfoID 并将其绑定(bind)到该 UserID,以便当他们登录并输入其个人资料详细信息时,它将进入 UserInfo 表。
感谢 Vintage Coders!这就是我最终得到的结果,它完美地工作了:
$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 添加到第二个表列中,即(userid)。 公式为:
mysql_insert_id();
关于php - 如何将USER表和USERINFO表记录一一匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57319570/