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

10-13 00:49