![](/img/trans.png)
[英]How do I use the value from the latest insert using mysql_insert_id in subsequent MULTIPLE insert statements (in PHP and MYSQL)?
[英]php mysql execute 2 insert statements based on first insert ID
这是我能做的:
当用户填写表单进行注册时,脚本会将注册信息插入表ps_reg_users中 。 该表包含基本配置文件信息。
我添加了“徽章/成就”部分,以根据某些条件显示徽章。
我需要做什么:
用户注册后,将该用户添加到具有第一个查询的ID的另一个表ps_badges中 。
该id设置为在表ps_reg_users上自动递增,并在提交时插入NULL ,从而分配下一个id 。
我将如何在ps_reg_users中插入查询,然后在创建ID之后根据该ID进行另一个查询来检索ID ?
PHP
$query = "INSERT INTO `" . DB_PREFIX . "reg_users` ( `id` , `first_name` , `last_name` , `password` , `email` , `date_time` , `user_status`, `verify_code` , `reward_points`, `ref_user`)
VALUES (NULL , '$first_name', '$last_name', '$password', '$e_email', '$date_time' , 'y', '$verify_code', '0' , '$ref_uid')";
这^有效。
我需要马上执行
$query = "INSERT INTO `" . DB_PREFIX . "badges` ( `user_id` , `pts_reputation` , `pts_comments` , `pts_uploads` , `pts_downloads` , `pts_featured` , `pts_activity`, `pts_refer`, `pts_donator` , `pts_country`)
VALUES (NULL , '0', '0', '0', '0', '0', '0', '0', '0', NULL)";
我希望即时通讯没有过多解释,我想我需要利用LAST_INSERT_ID(),但是如何从第一个查询中获取呢?
基本顺序:
$sql = "INSERT ....";
$result = mysql_query($sql) or die(mysql_error());
$id = mysql_insert_id();
$sql = "INSERT .... (id,...) VALUES ($id, ...);"
$result = mysql_query($sql) or die(mysql_error());
当然,您仍在使用过时的界面,应该切换到mysqli或PDO。
mysql_insert_id(); mysql函数返回最后插入的id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.