Php 要向两个不同的表执行双MYSQL插入吗

Php 要向两个不同的表执行双MYSQL插入吗,php,mysql,insert,Php,Mysql,Insert,我希望能够使用php插入两个不同的mysql表,第二个mysql插入依赖于第一个插入的成员id mysql_insert_id — Get the ID generated from the previous INSERT operation 例如: mysql_query(" INSERT INTO `member_users` ( `id`, `first_name`, `last_name`, `usernam

我希望能够使用php插入两个不同的mysql表,第二个mysql插入依赖于第一个插入的成员id

mysql_insert_id — Get the ID generated from the previous INSERT operation
例如:

mysql_query("
    INSERT INTO `member_users` (
        `id`, 
        `first_name`, 
        `last_name`, 
        `username`, 
        `password`, 
        `address1`, 
        `address2`, 
        `postcode`, 
        `access`, 
        `expires`
    ) VALUES (
        NULL, 
        '$fname', 
        '$lname', 
        '$email', 
        '$passhash', 
        '$add1', 
        '$city', 
        '$postcode', 
        '', 
        ''
    )"
);
然后我想获取该成员用户的id,在同一页面上创建一个mysql_查询插入,例如:

mysql_query("
    INSERT INTO `member_orders` (
        `order_id`, 
        `member_id`, 
        `date`, 
        `item`, 
        `size`, 
        `quantity`, 
        `price`, 
        `tracking_id`, 
        `status`, 
        `item_sent`, 
        `notes`
    ) VALUES (
        NULL, 
        '$userid', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        ''
    )
");
这可能是一个非常简单的答案,也是一个非常愚蠢的问题,但似乎在任何地方都找不到答案


提前感谢

您可以使用php函数
mysql\u insert\u id()
获取最后一个输入数据库的id

例如:

因此,在第一次插入后的问题中,您需要:

$userid = mysql_insert_id();

然后您的第二个查询就可以工作了。

您可以使用php函数
mysql\u insert\u id()
来获取您输入到数据库中的最后一个id

例如:

因此,在第一次插入后的问题中,您需要:

$userid = mysql_insert_id();

然后您的第二个查询就可以工作了。

您可以使用mysql\u insert\u id()获取由上次插入生成的id

mysql_insert_id — Get the ID generated from the previous INSERT operation

您可以使用mysql_insert_id()获取由上次插入生成的id

mysql_insert_id — Get the ID generated from the previous INSERT operation

您可以像本例中所做的那样进行操作

$sql = "INSERT INTO users(name,gender) VALUES ('$name','$gender')";
$result = mysql_query( $sql,$conn );
$user_id = mysql_insert_id( $conn );
$sql = "INSERT INTO website(site,user) VALUES ('$site',$user_id)";
$result = mysql_query( $sql,$conn );

的手册您可以执行与本例类似的操作

$sql = "INSERT INTO users(name,gender) VALUES ('$name','$gender')";
$result = mysql_query( $sql,$conn );
$user_id = mysql_insert_id( $conn );
$sql = "INSERT INTO website(site,user) VALUES ('$site',$user_id)";
$result = mysql_query( $sql,$conn );

手册如果我理解正确,您需要从第一个查询中获取
成员id
,以便在第二个查询中使用,您可以使用PHP函数

$the_member_id = mysql_insert_id();
$sql = "SELECT LAST_INSERT_ID()";
// add code here to run the query.

您也可以不使用该PHP函数来执行此操作

$the_member_id = mysql_insert_id();
$sql = "SELECT LAST_INSERT_ID()";
// add code here to run the query.

如果我理解正确,并且您需要从第一个查询中获取
成员id
,以便在第二个查询中使用,那么您可以使用PHP函数

$the_member_id = mysql_insert_id();
$sql = "SELECT LAST_INSERT_ID()";
// add code here to run the query.

您也可以不使用该PHP函数来执行此操作

$the_member_id = mysql_insert_id();
$sql = "SELECT LAST_INSERT_ID()";
// add code here to run the query.

您可以在第二条SQL语句中使用LAST_INSERT_ID MySQL函数从第一条SQL语句中获取最后一个INSERT ID

mysql_query("
    INSERT INTO `member_orders` (
        `order_id`, 
        `member_id`, 
        `date`, 
        `item`, 
        `size`, 
        `quantity`, 
        `price`, 
        `tracking_id`, 
        `status`, 
        `item_sent`, 
        `notes`
    ) VALUES (
        NULL, 
        LAST_INSERT_ID(), 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        ''
    )
");

我建议,如果使用这种方法,那么在事务中执行查询。这样一来,在第一次插入和第二次插入之间就不可能再发生另一次插入,从而放弃最后一个插入ID的结果。

您可以在第二条SQL语句中使用最后一个插入ID MySQL函数从第一条SQL语句中获取最后一个插入ID

mysql_query("
    INSERT INTO `member_orders` (
        `order_id`, 
        `member_id`, 
        `date`, 
        `item`, 
        `size`, 
        `quantity`, 
        `price`, 
        `tracking_id`, 
        `status`, 
        `item_sent`, 
        `notes`
    ) VALUES (
        NULL, 
        LAST_INSERT_ID(), 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        '', 
        ''
    )
");

我建议,如果使用这种方法,那么在事务中执行查询。这样,在第一次插入和第二次插入之间就不可能再发生另一次插入,从而丢弃最后一次插入ID的结果。

执行mysql\u query()函数后,可以通过mysql\u insert\u ID()获得最后插入表的最后一次插入ID。

执行mysql\u query()后函数可以通过mysql_insert_id()获取最后插入表的最后插入id