需要注意的是,使用 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 的大小。