php mysql根据第一个插入ID执行2个insert语句

时间:2014-02-23 03:17:06

标签: php mysql

这是我能够做到的:

当用户填写表单以注册脚本时,会将注册信息插入表 ps_reg_users 。此表包含基本配置文件信息。

我添加了徽章/成就部分,以根据特定标准显示徽章。

我需要做什么:

用户注册后,将该用户添加到第一个查询中 id 的另一个表 ps_badges

id 在表格 ps_reg_users 上设置为自动递增,并在提交时插入 NULL ,从而分配下一个 ID

如何将查询插入 ps_reg_users ,然后在创建它之后检索 ID ,以根据 id 生成另一个查询?< / p>

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(),但我如何从第一个查询中获取它?

2 个答案:

答案 0 :(得分:1)

基本顺序:

$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。

答案 1 :(得分:0)

mysql_insert_id(); mysql函数返回最后插入的id