Php 要向两个不同的表执行双MYSQL插入吗
我希望能够使用php插入两个不同的mysql表,第二个mysql插入依赖于第一个插入的成员idPhp 要向两个不同的表执行双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
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