Php/docs/mysqli.insert-id
mysqli::$insert_id
mysqli_insert_id
(PHP 5, PHP 7)
mysqli::$insert_id -- mysqli_insert_id — 返回最后一条插入语句产生的自增 ID
说明
面向对象风格
mixed $mysqli->insert_id
;
过程化风格
mysqli_insert_id() 函数返回最后一个 SQL 语句(通常是 INSERT 语句) 所操作的表中设置为 AUTO_INCREMENT 的列的值。 如果最后一个 SQL 语句不是 INSERT 或者 UPDATE 语句, 或者所操作的表中没有设置为 AUTO_INCREMENT 的列, 返回值为 0。
Note:
如果在所执行的 INSERT 或者 UPDATE 语句中使用了数据库函数 LAST_INSERT_ID()。 有可能会影响 mysqli_insert_id() 函数的返回值。
返回值
最后一条 SQL(INSERT 或者 UPDATE)所操作的表中设置为 AUTO_INCREMENT
属性的列的值。
如果指定的连接上尚未执行 SQL 语句,或者最后一条 SQL 语句所操作的表中没有设为
AUTO_INCREMENT
的列,返回 0。
Note:
如果返回值超出了 php 允许的最大整数值, mysqli_insert_id() 函数会以字符串形式返回这个值。
范例
Example #1 $mysqli->insert_id
例程
面向对象风格
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* 检查连接 */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}$mysqli->query("CREATE TABLE myCity LIKE City");$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";$mysqli->query($query);printf ("New Record has id %d.\n", $mysqli->insert_id);/* 删除表 */$mysqli->query("DROP TABLE myCity");/* 关闭连接 */$mysqli->close();?>
过程化风格
<?php$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* 检查连接 */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit();}mysqli_query($link, "CREATE TABLE myCity LIKE City");$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";mysqli_query($link, $query);printf ("New Record has id %d.\n", mysqli_insert_id($link));/* 删除表 */mysqli_query($link, "DROP TABLE myCity");/* 关闭连接 */mysqli_close($link);?>
以上例程会输出:
New Record has id 1.