我希望能够使用php插入两个不同的mysql表,第二个mysql插件依赖于第一个插入的成员id。
例如:
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_query插入,例如:
mysql_query("
INSERT INTO `member_orders` (
`order_id`,
`member_id`,
`date`,
`item`,
`size`,
`quantity`,
`price`,
`tracking_id`,
`status`,
`item_sent`,
`notes`
) VALUES (
NULL,
'$userid',
'',
'',
'',
'',
'',
'',
'',
'',
''
)
");
它可能是一个非常简单的答案和一个非常愚蠢的问题,但似乎无法在任何地方找到答案
提前致谢
答案 0 :(得分:1)
如果我理解正确,你需要从第一个查询中获取member_id
,要在第二个查询中使用,你可以使用PHP函数
$the_member_id = mysql_insert_id();
http://php.net/manual/en/function.mysql-insert-id.php
您也可以在不使用该PHP函数的情况下执行此操作
$sql = "SELECT LAST_INSERT_ID()";
// add code here to run the query.
答案 1 :(得分:0)
您可以使用php函数mysql_insert_id()
获取您输入数据库的最后一个ID。
EG:
$sql = "INSERT INTO `table` VALUES (NULL, 'Thomas', 'Male')";
$query = mysql_query($sql);
$id = mysql_insert_id();
所以在第一个INSERT
之后的问题中你需要这个:
$userid = mysql_insert_id();
然后你的第二个查询就可以了。
答案 2 :(得分:0)
您可以使用mysql_insert_id()获取由上次插入生成的id。
mysql_insert_id — Get the ID generated from the previous INSERT operation
答案 3 :(得分:0)
您可以执行类似于此示例中所做的操作
$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 );
答案 4 :(得分:0)
您可以在第二个SQL语句中使用LAST_INSERT_ID MySQL函数从第一个中获取最后一个插入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(),
'',
'',
'',
'',
'',
'',
'',
'',
''
)
");
如果您使用此方法,我建议您在事务中执行查询。这样就不会在第一次插入和第二次插入之间发生另一次插入,从而抛弃LAST_INSERT_ID的结果。
答案 5 :(得分:0)
执行mysql_query()函数后,您可以通过mysql_insert_id()获取最后插入的表的最后插入的id。