Php 如何从数据库中获取插入前的最后一个插入id

Php 如何从数据库中获取插入前的最后一个插入id,php,mysql,mysqli,Php,Mysql,Mysqli,如何从数据库表中选择最后一个插入id 我需要从数据库中获取最后一个插入id 我尝试了最后一个_insert _id函数,但这对我来说不起作用,因为我想在执行插入查询之前获取此id,而在获取此id后执行插入查询 我尝试使用max作为id,但是如果我有一个已删除的 我想它不会被拿走 例如,如果删除id 10,则最大id将为9,但自动 增量为11 然后我想要一个新的id,这个id将通过自动增量添加 示例:我删除了一个id 10,我希望它比下一个id要多 十一, 您不能也不应该在插入之前获取最后一个插入

如何从数据库表中选择最后一个插入id

我需要从数据库中获取最后一个插入id

我尝试了最后一个_insert _id函数,但这对我来说不起作用,因为我想在执行插入查询之前获取此id,而在获取此id后执行插入查询

我尝试使用max作为id,但是如果我有一个已删除的 我想它不会被拿走

例如,如果删除id 10,则最大id将为9,但自动 增量为11

然后我想要一个新的id,这个id将通过自动增量添加

示例:我删除了一个id 10,我希望它比下一个id要多 十一,


您不能也不应该在插入之前获取最后一个插入的id


这样做没有一个单一的理由。只需插入数据,获取实际id,然后在其他任何地方使用即可。就这么简单

插入完成后,自动增量值由数据库本身生成;这意味着您在执行实际的插入查询之前无法获取它。 插入一些半空数据 获取已生成的自动增量值 使用该自动增量值进行计算 更新行以放置新的/完整的数据-使用更新查询的where子句中前面生成的自动增量来标识要更新的行

As pseudo-code :
begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction
或者,您可以按照以下步骤操作: SELECT
AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_name' AND TABLE_NAME = 'table_name';
并获取您的最后一个id。

这是为了填补id序列之间的漏洞吗?如果是这样的话,就不用麻烦了。为什么最后一个\u insert\u id对您不起作用?请确保使用事务。否则,即使你设法获得now_insert_id,也会把事情搞砸。你总是可以这样做的。what i information_schema.tables什么是table_schema?information_schema是mysql默认附带的数据库,你会找到你想要的信息,为什么不执行它而不是设置-1,这意味着您在执行实际的插入查询之前无法获取它是不正确的。。请看主持人的回答。。。