Usando Mysqli bind_param con colonne di data e ora?

Come si inseriscono i dati in una colonna di data o ora MySQL usando PHP mysqli e bind_param?

Come qualsiasi altra string

  $ stmt = $ mysqli-> prepare ('inserire in foo (dt) valori (?)');
 $ dt = '2009-04-30 10:09:00';
 $ stmt-> bind_param ('s', $ dt);
 $ Stmt-> execute (); 

I timestamp in PHP sono numbers interi (il numero di secondi dell'epoca UNIX). Un'alternativa a quanto sopra è l'uso di un parametro data / ora di tipo integer e le funzioni MySQL FROM_UNIXTIME e UNIX_TIMESTAMP

 $stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES (FROM_UNIXTIME(?))"); $stmt->bind_param("i", $your_date_parameter); $stmt->execute(); 

Ho usato la function date () e questo mi ha risolto il problema.

 $stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES ?"); // 6/10/2015 10:30:00 $datetime = date("Ymd H:i:s", mktime(10, 30, 0, 6, 10, 2015)); $stmt->bind_param("s", $datetime); $stmt->execute(); 

Usa la function mySQL now () per i campi timestamp.

Per la data / ora corrente è ansible utilizzare la routine standard MySQL. Non devi prepararlo.

 $query = "INSERT INTO tablename "; $query .= "VALUES(?,?,?,NOW()) "; $preparedquery = $dbaselink->prepare($query); $preparedquery->bind_param("iii",$val1,$val2,$val3);