REPLACE non funge come un UPDATE, altrimenti che ci starebbe a fare?
REPLACE agisce secondo questo meccanismo:
Se viene trovato un record che abbia la chiave primaria oppure una chiave UNIQUE identica al record che si vuole inserire, cancella il record corrispondente e lo riscrive con i nuovi dati assegnando pure un nuovo id autoincrement se questo fosse presente.
Nel caso il record non trovasse riscontro ne viene inserito uno nuovo.
Per sapere se ha agito come aggiornamento oppure come inserimento devi verificare le righe modificate con mysql_affected_rows:
Se sono due ha cancellato e riscritto, se la riga e' una ha solo inserito.
Detto questo la tua query come replace non puo' funzionare perche' manca del riferimento alla chiave unica o ad un indice UNIQUE. Sicuramente la data non sara' uno di questi due nel senso che ti fornisce anche i secondi. Meglio usare CURDATE()
![]()