В приложении с высоким трафиком возможно, что mysqli_insert_id()
возвращает неверный идентификатор или путать идентификатор между двумя запросами INSERT
выполняемыми почти одновременно?
Нет. mysqli_insert_id
возвращает наибольшее значение AUTO_INCREMENT
из последнего запроса INSERT
в текущем соединении. Например, он никогда не запутается с другим соединением.
Нет. Как я могу быть так уверен? Потому что это было сообщено и зафиксировано давно .
Цитата из предыдущего ответа на этот точный вопрос:
Посмотрите http://dev.mysql.com/doc/refman/5.6/en/getting-unique-id.html для получения дополнительной информации, он говорит следующее:
«Для LAST_INSERT_ID () самый последний сгенерированный идентификатор поддерживается на сервере для каждого соединения. Он не изменяется другим клиентом. Он даже не изменяется, если вы обновляете другой столбец AUTO_INCREMENT с немагическим значением (то есть, значение, которое не является NULL, а не 0). Использование столбцов LAST_INSERT_ID () и AUTO_INCREMENT одновременно от нескольких клиентов вполне допустимо. Каждый клиент получит последний вставленный идентификатор для последнего оператора, который был выполнен клиентом ».
Поэтому вы должны делать все, что хотите, и вы не должны получать странные результаты.