如何一对一匹配 USER table 和 USERINFO table 记录?
How do I match up USER table and USERINFO table records one for one?
我有一个 UserLogin table 供用户使用用户名和密码登录。我还有一个 UserInfo table 包含地址、Phone 数字和其他 30 个列中的信息。
在 UserLogin table 中创建用户时,我想将他们的 UserLogin 行与 UserInfo table 中的一行匹配,以便我可以将用户详细信息存储在 UserInfo table。我的目标是让这些 table 具有匹配的主键 ID,以便 UserLoginID = '2493' 和 UserInfoID = '2493'。这样,tables 将逐行匹配,一对一,努力使用户个人资料信息始终与他们的 UserLogin 帐户匹配。
完成此任务的最佳方法(最佳实践)是什么?
用户登录Table
- 用户 ID(主键)(Auto_Increment)
- 用户名
- 密码
- 电子邮件
- 用户访问
用户信息Table
- UserInfoID(主键)(Auto_Increment)
- 名字
- 姓氏
- 地址
- Phone数量
创建新的 UserID 时,我还希望创建一个 UserInfoID 并将其绑定到 UserID,这样当他们登录并输入个人资料详细信息时,它将进入 UserInfo table。
感谢经典编码员!这就是我最终得到的结果,它完美地工作:
$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')");
有一些简单的方法可以解决这个问题:
- 将两个 table 合二为一。
- 将 userID 字段添加到 UserInfo table。 (注意不要创建多个具有相同 userID 值的 UserInfo 记录,也许为了安全起见使该列唯一)。
我在将 UserInfoID 字段添加到用户中时看不到任何值 table。获得用户的用户 ID 后,您可以轻松找到 UserInfo 记录。
有两种解决方案:
1) 当您插入第一个 table 的记录时,您可以获得最后插入的 ID,并将第二个 table UserInfoID 保存为从第一个 table 获取。
2) 您可以在第二个 table 中创建一个新字段,即与第一个 table(用户 ID)相关。当您在第二个 table 中插入记录时,您可以将第一个 table 的最后插入的 ID 添加到第二个 table 列中,即(用户 ID)。
公式为:
mysql_insert_id();
我有一个 UserLogin table 供用户使用用户名和密码登录。我还有一个 UserInfo table 包含地址、Phone 数字和其他 30 个列中的信息。
在 UserLogin table 中创建用户时,我想将他们的 UserLogin 行与 UserInfo table 中的一行匹配,以便我可以将用户详细信息存储在 UserInfo table。我的目标是让这些 table 具有匹配的主键 ID,以便 UserLoginID = '2493' 和 UserInfoID = '2493'。这样,tables 将逐行匹配,一对一,努力使用户个人资料信息始终与他们的 UserLogin 帐户匹配。
完成此任务的最佳方法(最佳实践)是什么?
用户登录Table
- 用户 ID(主键)(Auto_Increment)
- 用户名
- 密码
- 电子邮件
- 用户访问
用户信息Table
- UserInfoID(主键)(Auto_Increment)
- 名字
- 姓氏
- 地址
- Phone数量
创建新的 UserID 时,我还希望创建一个 UserInfoID 并将其绑定到 UserID,这样当他们登录并输入个人资料详细信息时,它将进入 UserInfo table。
感谢经典编码员!这就是我最终得到的结果,它完美地工作:
$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')");
有一些简单的方法可以解决这个问题:
- 将两个 table 合二为一。
- 将 userID 字段添加到 UserInfo table。 (注意不要创建多个具有相同 userID 值的 UserInfo 记录,也许为了安全起见使该列唯一)。
我在将 UserInfoID 字段添加到用户中时看不到任何值 table。获得用户的用户 ID 后,您可以轻松找到 UserInfo 记录。
有两种解决方案:
1) 当您插入第一个 table 的记录时,您可以获得最后插入的 ID,并将第二个 table UserInfoID 保存为从第一个 table 获取。
2) 您可以在第二个 table 中创建一个新字段,即与第一个 table(用户 ID)相关。当您在第二个 table 中插入记录时,您可以将第一个 table 的最后插入的 ID 添加到第二个 table 列中,即(用户 ID)。 公式为:
mysql_insert_id();