如何取回刚刚存入数据库的记录的ID?

flyland 2004-04-01 02:14:18
因为ID字段是数据库自己记录的增项,
数据写入后我需要取回这个记录的ID,
请问,我该如何做?
我用Mysql和Php。谢谢。
...全文
28 点赞 收藏 3
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyonet 2004-04-01
mysql_insert_id
回复
SuperBJack 2004-04-01
用这个."select top 1 id from [table] where order by id desc "
回复
feel8 2004-04-01
mysql_insert_id
(PHP 3, PHP 4 )

mysql_insert_id -- 取得上一步 INSERT 操作产生的 ID
说明
int mysql_insert_id ( [resource link_identifier])


mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。

如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。

注: MySQL 中的 SQL 函数 LAST_INSERT_ID() 总是保存着最新产生的 AUTO_INCREMENT 值,并且不会在查询语句之间被重置。


警告
mysql_insert_id() 将 MySQL 内部的 C API 函数 mysql_insert_id() 的返回值转换成 long(PHP 中命名为 int)。如果 AUTO_INCREMENT 的列的类型是 BIGINT,则 mysql_insert_id() 返回的值将不正确。可以在 SQL 查询中用 MySQL 内部的 SQL 函数 LAST_INSERT_ID() 来替代。


例子 1. mysql_insert_id() 例子

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf ("Last inserted record has id %d\n", mysql_insert_id());
?>



参见 mysql_query()。
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告