Интересная особенность функции mysql_affected_rows()

Если во время запроса возникла какая либо проблема, то используемая сразу после функции mysql_query() функция mysql_affected_rows() вернёт -1.  И вроде бы всё ок, и можно проверить прошло ли всё успешно или нет написав такой код:

if(mysql_affected_rows($dblink)>0){

обработка

}

Но есть одно НО! Если запрос на обновление имеет те же данные что уже имеются в базе, то Mysql не обновит строку и вернёт 0 обновлённых строк. Т.е данные не будут перезаписаны. Соответственно количество затронутых строк будет равно 0.

Для правильности отслеживания такой ситуации необходимо писать так:

if(mysql_affected_rows($dblink)>=0){

обработка

}

Добавить комментарий