插入两个表行,然后按ID加入关系表

时间:2013-12-03 21:47:48

标签: php mysql

我有一个表单,其中包含两个名称和两个电子邮件地址,然后是一个密码。

我希望编写多个查询,以便将名称和电子邮件插入到一个表中,然后由数据库为这两个表生成的自动递增ID与密码一起插入到第二个表中。

我运行一个插入查询,抓取last_insert_id,然后运行另一个并执行相同操作。

当我使用last_insert_id来获取自动递增值时,有没有办法将这两个值存储为变量,以便我可以轻松地将它们的相关ID插入到第二个表中同时?一旦我第二次使用last_insert_id,它似乎失去了第一个值。

非常感谢使用方法或指示方向的指示。我喜欢弄清楚我自己使用的确切代码。

修改

这些是我的查询,它可以正常工作除了创建的UID是1和2,但插入到第二个表中的是ID 0和1.任何想法为什么?

$your_query = "INSERT INTO MEMBERS (NAME, EMAIL) VALUES ('$your_name', '$your_email')";
$your_id = (mysql_insert_id());
mysql_query($your_query);
$partner_query = "INSERT INTO MEMBERS (NAME, EMAIL) VALUES ('$partner_name', '$partner_email')";
$partner_id = (mysql_insert_id());
mysql_query($partner_query);
$couples_query = "INSERT INTO COUPLES (UID_1, UID_2, PASSWORD, SALT) VALUES ('$your_id', '$partner_id', '$password', '$salt')";
mysql_query($couples_query);

1 个答案:

答案 0 :(得分:0)

原来我在mysql_insert_id周围有一些额外的括号,它应该在mysql_query之后运行。

$your_query = "INSERT INTO MEMBERS (NAME, EMAIL) VALUES ('$your_name', '$your_email')";
mysql_query($your_query);
$your_id = mysql_insert_id();
$partner_query = "INSERT INTO MEMBERS (NAME, EMAIL) VALUES ('$partner_name', '$partner_email')";
mysql_query($partner_query);
$partner_id = mysql_insert_id();
$couples_query = "INSERT INTO COUPLES (UID_1, UID_2, PASSWORD, SALT) VALUES ('$your_id', '$partner_id', '$password', '$salt')";
mysql_query($couples_query);