Как узнать, была ли последняя операция вставки или обновления при использовании вставки при повторном обновлении в MySQL и PHP? - PullRequest
5 голосов
/ 08 августа 2009

Я использую PHP и MySQL.

Если я использую оператор INSERT ON DUPLICATE UPDATE SQL, то как узнать, была ли последняя операция успешной вставкой, а не обновлением или неудачной вставкой?

Предположения о том, что рассматриваемая таблица не использует автоинкремент, поэтому я не могу использовать mysql_insert_id, чтобы помочь мне выяснить.

1 Ответ

8 голосов
/ 08 августа 2009

Вы захотите проверить mysql_affered_rows (), которая вернет 1 при вставке и 2 при обновлении. Согласно документации mysql .

if (mysql_affected_rows() == 1) //INSERT
elseif (mysql_affected_row() == 2) //UPDATE

Если обновление ничего не изменит, в этом случае оно вернет 0.

...