2010-04-15 3 views
1

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

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

: Панкай

ответ

2

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

Казалось бы, ожидаемое поведение, судя по этому:

+1

Это применяется, если вы укажете значение для поля с автоматическим приращением (т. Е. Отключение магии ;-)). Это дело с вашими запросами, PankajK? – VolkerK

4

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

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

Смежные вопросы