6

如果我使用带有 php 和 mysqli * 函数的存储过程执行插入查询_,有没有办法检索自动增量 id 字段的值?
mysqli->insert_id似乎不起作用。

4

4 回答 4

8

您确定您执行的最后一个查询是 INSERT 吗?

mysqli->insert_id似乎是正确的答案:

返回值

AUTO_INCREMENT由上一个查询更新的字段的值。如果连接上没有先前的查询或查询没有更新AUTO_INCREMENT值,则返回零。

于 2009-09-19T17:42:01.870 回答
1

您可以尝试像这样对 MySql 进行查询

SELECT LAST_INSERT_ID()

不确定它是否适用于存储过程。

于 2009-09-19T17:32:33.473 回答
1

您可以在插入后在存储过程中添加此语句:

   SET @saved_id = LAST_INSERT_ID()

然后,在调用过程后执行此查询:

   SELECT @saved_id
于 2009-09-19T18:49:27.163 回答
0

mysqli->insert_id(其中mysqli代表您的数据库连接)必须在插入后直接使用。如果您在尝试读取之前在同一连接上运行其他查询,insert_id则会返回 0。

于 2014-01-07T10:20:49.953 回答