Насколько я знаю, идентификатор, возвращаемый из mysql_insert_id, является идентификатором автоматического приращения из последнего запроса на вставку для текущего подключения (mysql_connect) к базе данных sql.Единственная причина, по которой он вызывается сразу после запроса, состоит в том, что если вы запускаете два запроса вставки сразу после друг друга, mysql_insert_id возвращает только последний запрос.Не было бы надежно получить идентификатор из первого запроса.Кроме того, он получает идентификатор из последнего запроса, поэтому, если вы выполнили вставку, а затем обновили, запустили mysql_insert_id.Он вернет 0, потому что последний запрос (обновление) не является вставкой.
Кроме того, php просто вызывает функцию mysql mysql_insert_id .Из руководства mysql:
На значение mysql_insert_id () влияют только операторы, выпущенные в текущем клиентском соединении.На него не влияют заявления других клиентов.