Не работает mysql_affected_rows при UPDATE

Silex

unitecsys
Не работает mysql_affected_rows при UPDATE

Столкнулся с проблемой. UPDATE отрабатывает, обновляет запись, но mysql_affected_rows() выдает 0. К базе кроме меня никто не обращается. Что это может быть?

MySQL 3.23.42
Apache-AdvancedExtranetServer/2.0.44 (Mandrake Linux/11mdk) PHP/4.3.1
 

tony2001

TeaM PHPClub
пример кода, плз.

p.s.
интересно: Апач 2-й, а MySQL двухлетней давности...
 

Silex

unitecsys
Нашел причину. Если исходная запись и новая запись совпадают, возвращается 0. Хотя по логике (имхо) должно быть 1: запись нашел и проапдейтил, несмотря на то, что фактических изменений не произошло.

Задача была такая: апдейтим запись, если mysql_affected_rows возвратит 0 - делаем INSERT с теми же данными. Придется, видимо, сначала SELECT сделать и уже по пустому результату делать INSERT, в противном случае - UPDATE.

>интересно: Апач 2-й, а MySQL двухлетней давности...
Так исторически сложилось...
 

tony2001

TeaM PHPClub
>Хотя по логике (имхо) должно быть 1: запись нашел и проапдейтил, несмотря на то, что фактических изменений не произошло.
дело в том, что он в реальности не апдейтит, если они и так равны.
 

Апельсин

Оранжевое создание
> Хотя по логике (имхо) должно быть 1

должно быть 0, о чем и написано в документации.
 

Silex

unitecsys
>написано в документации
Ага, нашел уже. Все верно.

Действительно, replace - наилучший вариант. Всем спасибо.
 
Сверху