Функция php last_insert_id () не работает с запросом REPLACE INTO - PullRequest
1 голос
/ 15 апреля 2010

Я использую запрос REPLACE INTO для вставки в таблицу, но после выполнения запроса с помощью функции mysql_query (), и если я использую last_insert_id (), он дает мне только значение 0.

почему так происходит? и как я могу преодолеть это поведение.

: Панкай

Ответы [ 2 ]

4 голосов
/ 15 апреля 2010

Вместо этого вы можете попробовать INSERT INTO ... ON DUPLICATE KEY UPDATE. Он выполняет то же самое, что и REPLACE INTO, но в одной операции на стороне сервера. REPLACE INTO может привести к двум операциям: удалить старую, вставить новую.

Но независимо от типа запроса вы должны убедиться, что первичным ключом таблицы является поле auto_increment. В противном случае last_insert_id () не работает должным образом.

3 голосов
/ 15 апреля 2010

REPLACE INTO не влияет на значение, которое можно получить с помощью last_insert_id().

Кажется, это ожидаемое поведение, судя по этому:

...