Je cite directement la documentation PHP ici :
Lorsque vous utilisez UPDATE, MySQL ne mettra pas à jour les colonnes où la nouvelle valeur est la même que l'ancienne valeur. Cela crée la possibilité que mysql_affected_rows() ne soit pas réellement égal au nombre de lignes mises en correspondance, mais uniquement au nombre de lignes qui ont été littéralement affectées par la requête.
Ainsi, dans votre cas, mysql_affected_rows() renverra 0 lorsque UNIX_TIMESTAMP() renvoie la même valeur (par exemple, deux requêtes du même client dans la même seconde).