现在的位置: 首页 > 综合 > 正文

利用mysql_insert_id()得到最后插入自增id值

2013年09月15日 ⁄ 综合 ⁄ 共 1638字 ⁄ 字号 评论关闭

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 值,并且不会在查询语句之间被重置。 

举例:

<?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 ("最后插入的id为" . mysql_insert_id());
?>

补充:

The mysql_insert_id() function returns the AUTO_INCREMENT ID generated from the previous INSERT operation.

mysql_insert_id()函数的作用是:取得上一步 INSERT 操作产生的 ID。

This function returns 0 if the previous operation does not generate an AUTO_INCREMENT ID, or FALSE on MySQL connection failure.

如果先前的操作不产生一个自动增加的ID[AUTO_INCREMENT ID],那么,函数返回0;如果MySQL连接失败,将返回False。

Syntax

语法

mysql_insert_id(connection)

Parameter参数 Description描述
connection Optional. Specifies the MySQL connection. If not specified, the last connection opened by mysql_connect() or mysql_pconnect() is used.

可选参数。指定MySQL连接。如果不指定该参数,那将默认使用通过mysql_connect()函数或mysql_pconnect()函数最后一次打开的连接


Tips and Notes

注意点

Note: Be sure to call mysql_insert_id() immediately after a query to get the correct value.

注意:你必须确定已经在一条查询语句之后请求了mysql_insert_id()函数以获取正确的值。


Example

案例

<?php$con = mysql_connect("localhost", "peter", "abc123");if (!$con) { die('Could not connect: ' . mysql_error()); }

$db_selected = mysql_select_db("test_db",$con);

$sql = "INSERT INTO person VALUES ('B?rge','Refsnes','Sandnes','17')";$result = mysql_query($sql,$con);echo "ID of last inserted record is: " . mysql_insert_id());

mysql_close($con);?>

The output of the code above could be:

上述代码将输出下面的结果:

ID of last inserted record is: 5

抱歉!评论已关闭.