2010-09-01 15 views
12

Ho una query che voglio aggiornare una colonna con l'ora corrente. La colonna che voglio aggiornare è del tipo datetime.Mysql/Php - Data e ora correnti

Come posso ottenerlo e impostarlo?

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 
+2

se si utilizza il timestamp' tipo 'per la colonna lo farà automaticamente ogni volta che il record viene aggiornato ... http: // dev .mysql.com/doc/refman/5.0/it/timestamp.html – prodigitalson

+0

Questo non funzionerà per i miei scopi. – user377419

risposta

20

Utilizzando NOW() nella query avrebbe fornito questo.

else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = NOW() WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 

Ma se questo viene aggiornato in qualsiasi momento gli aggiornamenti della tabella, vorrei suggerire cambiando la colonna a TIMESTAMP e questo sarà automaticamente aggiornare l'ora corrente per voi in qualsiasi momento che i cambiamenti record.

+0

woooooo. Funziona, ottieni la migliore risposta quando posso. – user377419

+0

Ricorda che mySql ha problemi con unità di tempo inferiori a secondi. Ci sono alcune patch non supportate se hai bisogno di questa funzionalità. Si consiglia di alimentare il tempo di sistema mentre si costruisce la stringa di richiesta e di lavorare su un formato di epoca + macrosecondi (quante persone MySQL con esigenze di controllo stanno facendo) – Incognito

2

È possibile utilizzare la funzione mysql NOW() per questo, oppure è possibile pase $ _SERVER ['REQUEST_TIME'] lì così la query viene memorizzata nella cache da mysql.

8
else{ //If the last update is NULL, It must be players first page load. So set datetime equal to NOW 
    $query = "UPDATE `stats` SET `last_ap_update` = '".gmdate("Y-m-d H:i:s")."' WHERE `member_id` = {$_SESSION['SESS_MEMBER_ID']}"; 
    $queryresult = mysql_query($insertqry); 
} 

È possibile utilizzare qualsiasi formato che si desidera, invece di gmdate("Y-m-d H:i:s")