2009-04-30 41 views

Respuesta

63

Al igual que cualquier otra cadena de

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

9

marcas de tiempo en PHP son enteros (el número de segundos desde la época UNIX). Una alternativa a lo anterior es el uso de un parámetro de fecha/hora tipo entero, y el MySQL funciona FROM_UNIXTIME y UNIX_TIMESTAMP

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

@ Rob: Cuando uso esto, la fecha configurada es 1970/01/01 –

+1

El rango válido de una marca de tiempo es típicamente de viernes, 13 de diciembre de 1901 20:45:54 GMT a martes, 19 de enero de 2038 03:14:07 GMT. (Estas son las fechas que corresponden a los valores mínimo y máximo para un entero con signo de 32 bits). Sin embargo, antes de PHP 5.1.0, este rango estaba limitado del 01-01-1970 al 19-01-2038 en algunos sistemas (por ejemplo, Windows). –

1

he utilizado la función de fecha() y esto me resuelto el 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(); 
0

Utilice la función mySQL ahora() para los campos de marca de hora.

+1

Lo sentimos, no, solo para la fecha y la hora actuales en los campos de marca de tiempo. – Peter

1

Para la fecha/hora actual puede usar la rutina estándar de MySQL. No tienes que preparar eso.

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

establecer primero la fecha & tiempo usando fecha() Función-

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

luego pasarlo a la declaración preparada, al igual que cualquier otra cadena variable

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