admin

如何将数据发送到具有相同用户ID作为主键的两个表?

sql

我对PHP完全陌生,我正在尝试创建一个注册页面。要进行注册,用户必须创建用户名,密码,电子邮件,并将其放入名为的表中users

他们还输入地址详细信息,该详细信息放入名为的表中customer_info

在两个表中,我都创建了一个自动增量主键,称为“ user_id”。

表单填写完成后,它会填写并输入数据,但是数据没有绑定,因此有两个user_id,一个为inusers和一个in为customer_info

首先,我(从帖子中)创建已输入的值,并将其分配给变量。然后,使用以下查询将变量放入表中:

$result = mysql_query(
    "INSERT INTO `users`(username, password, email) VALUES ('$value1', '$value2','$value3')"
);

$result = mysql_query(
    "INSERT INTO `customer_info`(firstname, lastname, b_add_num, b_add_road, b_add_town, b_add_pc, p_add_num, p_add_road, p_add_town, p_add_pc) VALUES ('$value4','$value5','$value6','$value7','$value8','$value9','$value10','$value11','$value12','$value13')"
);

我将如何设置它,使其仅为两个表创建一个用户ID(在数据集之间建立连接)?

我的查询中是否缺少某些东西,应该连接表格?


阅读 134

收藏
2021-06-07

共1个答案

admin

在开始之前 ,您不应再使用mysql_
*扩展名。前往PDOmysqli


您的技术会生成两个不同的唯一ID。关键是只有 一个 ,以便它可以是唯一的,并在该唯一ID上链接信息。

users表是具有唯一ID的表user_id,它是您的auto_increment列。customer_info表也可以具有info_id唯一列,但必须包含一user_id列,该列将包含用户的user_id,将行链接在一起。

最好在表中添加外键,这样就不会损害数据的完整性。

所以在这个查询之后:

$result = mysql_query(
    "INSERT INTO `users`(username, password, email) VALUES ('$value1', '$value2','$value3')"
);

获取插入ID:

$id = mysql_insert_id();

然后使用它运行其他查询:

$result = mysql_query(
    "INSERT INTO `customer_info`(user_id,firstname, lastname, b_add_num, b_add_road, b_add_town, b_add_pc, p_add_num, p_add_road, p_add_town, p_add_pc) VALUES ('$id','$value4','$value5','$value6','$value7','$value8','$value9','$value10','$value11','$value12','$value13')"
);
2021-06-07