应该注意的是,使用 mysqli_stmt->insert_id 不会为每个准备好的插入语句的执行返回唯一的 ID。在实践中,似乎返回第一个插入 ID。如果您使用相同的准备好的语句执行多个插入(对给定语句的 mysqli_stmt::prepare 调用一次,而 mysqli_stmt::execute() 调用多次),并且需要保存每个插入的唯一 ID,请使用 mysqli_connection->insert_id。
(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — 获取上一个 INSERT 操作生成的 ID
面向对象风格
过程式风格
此函数目前没有文档,只有它的参数列表可用。
应该注意的是,使用 mysqli_stmt->insert_id 不会为每个准备好的插入语句的执行返回唯一的 ID。在实践中,似乎返回第一个插入 ID。如果您使用相同的准备好的语句执行多个插入(对给定语句的 mysqli_stmt::prepare 调用一次,而 mysqli_stmt::execute() 调用多次),并且需要保存每个插入的唯一 ID,请使用 mysqli_connection->insert_id。
对于使用零填充 ID 的人来说,请注意 mysqli_stmt::$insert_id 将返回一个整数。换句话说,如果您的查询返回的 ID 为 #000099,则 mysqli_stmt::$insert_id 生成的值为 #99。
我还没有找到解决此问题的办法,除了使用 sprintf('%06d',$id),但这假设您事先知道 ID 的大小。