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()
$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并将其插入另一个表中的主要内容,如果未能解决你的问题,请参考以下文章
如何获取最后插入的自动递增 id 并将其插入 laravel 中的另一个表中?
如何使用 PHP 从 MYSQL 中插入和检索图像 blob?