我有一个表单,其中包含两个名称和两个电子邮件地址,然后是一个密码。
我希望编写多个查询,以便将名称和电子邮件插入到一个表中,然后由数据库为这两个表生成的自动递增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);
答案 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);