Jag citerar direkt PHP-dokumentationen här:
När du använder UPDATE kommer MySQL inte att uppdatera kolumner där det nya värdet är detsamma som det gamla värdet. Detta skapar möjligheten att mysql_affected_rows() faktiskt inte är lika med antalet matchade rader, bara antalet rader som bokstavligen påverkades av frågan.
Så i ditt fall kommer mysql_affected_rows() att returnera 0 när UNIX_TIMESTAMP() returnerar samma värde (till exempel två förfrågningar från samma klient i samma sekund).