在使用预准备语句执行插入查询后获取自动增量ID

时间:2009-09-19 17:22:18

标签: php mysql mysqli prepared-statement auto-increment

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

4 个答案:

答案 0 :(得分:8)

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

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

  

返回值

     

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

答案 1 :(得分:1)

您可以尝试制作一个query to MySql

SELECT LAST_INSERT_ID()

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

答案 2 :(得分:1)

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

   SET @saved_id = LAST_INSERT_ID()

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

   SELECT @saved_id

答案 3 :(得分:0)

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