Domanda

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

È stato utile?

Soluzione

Come qualsiasi altra stringa

$stmt = $mysqli->prepare('insert into foo (dt) values (?)');
$dt = '2009-04-30 10:09:00';
$stmt->bind_param('s', $dt);
$stmt->execute();

Altri suggerimenti

I timestamp in PHP sono numeri interi (il numero di secondi dall'epoca UNIX). Un'alternativa a quanto sopra è utilizzare un parametro data / ora di tipo intero 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 funzione date () e questo mi ha risolto il problema.

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

Per la data / ora corrente è possibile utilizzare la routine standard MySQL. Non è necessario prepararlo.

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

Utilizza ora la funzione mySQL () per i campi timestamp.

prima imposta la data & amp; time using date () function-

$date=date("d/m/y");
$time=date("h:i:sa");

quindi passalo nell'istruzione preparata, proprio come qualsiasi altra variabile stringa-

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn, timeColumn) VALUES (?,?)");
$stmt->bind_param("ss", $date , $time);
$stmt->execute();

$ q = " inserisci in order_details (order_id, product_id, product_name, product_quantity, product_price, Created_at, updated_at) valori (?,?,?,?,?, NOW (), NOW ()) " ;;

            $stmt = mysqli_prepare($dbc, $q);

mysqli_stmt_bind_param ($ stmt, 'iisid', $ ord, $ pid, $ _SESSION ['nome_prodotto'], $ qty, $ prezzo);

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top