0

例如,我有一个包含 2 个表的数据库。第一个表(table1)有:

  userId int not null auto_increment primary key
  userEmail
  userPassword

userId 是我的主键,它会自动递增。我的下一张桌子(table2)有:

 userProfileId int not null auto_increment primary key
 userAge
 userGender
 userId 

userId(来自table2)是我引用table1(userId)的外键。有没有办法将两个表的所有信息都插入并让 table2 中的 userId 自动获取它从 table1 引用的主键?还是我必须为每个表执行多个 INSERTS 并显式使我的外键具有相同的值。

4

1 回答 1

0

您可以使用 mysql 的“Last_insert_id”,如下所示 -

<?php
$user_query="INSERT INTO accounts (userId,userEmail,userPassword) VALUES (NULL,'saving@gmail.com','XXXXXXXXX')";
$profile_query="INSERT INTO transactions(userProfileId,userAge,userGender,userId) VALUES (NULL,25,'m'LAST_INSERT_ID)";

$a_query=mysql_query($user_query);
$t_query=mysql_query($profile_query);
?>

注意: mysql_* 已弃用。相反,您可以使用 PDO 语句。

参考: http ://in3.php.net/manual/en/function.mysql-insert-id.php

参考: http ://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id

于 2013-10-24T02:39:34.150 回答