php - 如何将USER表和USERINFO表记录一一匹配?

标签 php mysql insert innodb php-7.2

我有一个 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/

相关文章:

php - 如何为每个页面设置背景颜色tcpdf

mysql - 使用存储过程将用户添加到数据库

php - pdo 按相关性排序,然后按另一个字段排序

mysql - 在 INSERT ON DUPLICATE 语句期间以什么顺序调用 mysql 触发器?

c++ - 如何在循环中将元素添加到空 vector ?

php - 向 % 的用户展示广告

php - 如何让新用户密码更安全?

php - 如何从数据库获取数组

php - 如何在mysql数据库中添加json数据

php - SQLSTATE[23000] : Integrity constraint violation: 1048 Column 'ID' cannot be null