php检索插入的最后一条记录的ID并将其插入另一个表中

Posted

技术标签:

【中文标题】php检索插入的最后一条记录的ID并将其插入另一个表中【英文标题】:php retrieving id of the last record inserted and insert it in another table 【发布时间】:2010-05-31 23:05:00 【问题描述】:

我正在尝试检索插入到表“authors”中的最后一条记录的 id,并将检索到的 id 插入到“articles”表中;这是我的代码:

$title = mysql_real_escape_string($_POST[title]);
$body = mysql_real_escape_string($_POST[body]);
$category = mysql_real_escape_string($_POST[category]);

$insert_author="INSERT INTO authors (name) VALUES ('$title')";
$select_author= mysql_query("SELECT LAST_INSERT_ID()");

$authId = mysql_fetch_array($select_author);
$query="INSERT INTO articles (body, date, category, auth_id) VALUES ('$body', '$date_now', '$category', '$authId')";

这不起作用...

有什么想法吗?

提前致谢

毛罗

【问题讨论】:

“它不起作用”信息不足。你做了什么调试?究竟是什么不起作用? 【参考方案1】:

您可以使用 mysql_insert_id()

获取最后一个插入 id
$insert_author="INSERT INTO authors (name) VALUES ('$title')";
mysql_query($insert_author) or die(mysql_error());

$authId = mysql_insert_id();

$query="INSERT INTO articles (body, date, category, auth_id) VALUES
('$body', '$date_now', '$category', '$authId')";

注意您缺少用于插入查询的 mysql_query 函数,我也在上面的代码中添加了该函数。

【讨论】:

【参考方案2】:

究竟是什么不起作用。 $authId 是否包含预期值?你把它转储检查了吗?

除此之外,你忘记了第二个mysql_query()

【讨论】:

【参考方案3】:

改用mysql-insert-id。

【讨论】:

【参考方案4】:

顾名思义,mysql_fetch_array($select_author) 返回一个数组,因此您需要获取该数组中的特定值才能插入到另一个表中。

【讨论】:

以上是关于php检索插入的最后一条记录的ID并将其插入另一个表中的主要内容,如果未能解决你的问题,请参考以下文章

在php中将最后一个id插入变量发送到另一个页面[重复]

如何获取最后插入的自动递增 id 并将其插入 laravel 中的另一个表中?

如何使用 PHP 从 MYSQL 中插入和检索图像 blob?

如何从同一类中的另一个方法检索最后插入的 id?

如何从一个表中检索一百万行并将其插入到另一个表中? [复制]

检索插入记录的 ID:Php & MS SQL SERVER