Как найти в PHP, какая часть запроса "INSERT ... ON DUPLICATE KEY UPDATE ..." выполнена успешно? - PullRequest
0 голосов
/ 13 мая 2011

У меня есть таблица MySQL, в которой нет поля AUTO_INCREMENT. В PHP я запускаю этот простой запрос:

mysql_query("INSERT INTO table ... ON DUPLICATE KEY UPDATE ....");

Мне нужно иметь возможность определить, была ли добавлена ​​новая строка в таблицу или была обновлена ​​старая строка? Возможно ли это как-то?

1 Ответ

2 голосов
/ 13 мая 2011

mysql_affected_rows() возвращает 1 при вставке (потому что он вставил одну строку) и 2 при обновлении (потому что сначала он попытался вставить, а затем обновил или что-то в этом роде).

Это когда вы просто пытаетесь добавить одну строку. Вы также можете иметь предложение ON DUPLICATE KEY UPDATE для многорядных вставок, и тогда вы получите сумму 1 и 2 для всех строк.

...