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);