Сколько же записей обновилось?

Вроде бы простой вопрос, сколько рядов было затронуто SQL-операцией UPDATE, но и здесь притаился подводный камень (о котором, правда честно предупреждают в документации). В MySQL в это число могут не попадать записи, у которых данные не потребовалось изменять. А значит, если REPLACE не подходит, то нужно проводить дополнительные проверки на тему того, сколько же данных вы обновили. Я споткнулся об этом в функции mysql_affected_rows в PHP. Там-же можно найти один из вариантов решения — использовать mysql_info, но в этом случае нужно парсить строку с ответом. Ну а дальше в вариантах SELECT‘ы и т.п.

  • http://hlabs.spb.ru Dmitry Vasiliev

    Простой вопрос — а зачем? :-)

  • http://dev.goodguy.spb.ru goodguy

    Тяжкое наследие любителей создать таблицу с несколькими раздельными ключами, из-за которого случается полная путаница в REPLACE, и поэтому приходиться делать всё жутко аккуратно в ретро-стилe UPDATE/INSERT.