首页 > 后端开发 > php教程 > 如何在 PHP/MySQL 中检索新插入行的 ID?

如何在 PHP/MySQL 中检索新插入行的 ID?

Patricia Arquette
发布: 2024-12-04 20:05:19
原创
797 人浏览过

How to Retrieve the ID of a Newly Inserted Row in PHP/MySQL?

在 PHP/MySQL 中检索插入行的 ID

在具有自动递增 id 字段的 MySQL 表中插入一行时,必须检索新生成的id用于后续操作。

避免竞争条件

获取 id 的一种方法是在数据库中查询与插入信息匹配的行。但是,此方法引入了竞争条件,在执行查询之前可能会插入另一行,从而导致结果不准确。

使用 mysqli_insert_id()

可靠的解决方案是利用 MySQL 的 LAST_INSERT_ID( ) 功能。 PHP 中的 mysqli_insert_id() 方法返回当前连接的最后生成的 id。

$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);
登录后复制

一个操作中的多个查询

另一种方法是在单个操作中执行多个查询,利用 MySQL 的 LAST_INSERT_ID() 方法。这可以确保即使涉及多个表也能正确分配 id。

mysqli_query($link, "INSERT INTO my_user_table ...;
  INSERT INTO my_other_table (`user_id`) VALUES (LAST_INSERT_ID())");
登录后复制

此方法消除了担心竞争条件的需要,并提供了一种可靠的方法来检索插入行的 id。

以上是如何在 PHP/MySQL 中检索新插入行的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板