Как вы вставляете данные в столбец даты или времени MySQL, используя PHP mysqli и bind_param?
Как и любая другая строка
$ stmt = $ mysqli-> prepare ("insert into foo (dt) values (?) '); $ dt = '2009-04-30 10:09:00'; $ stmt-> bind_param ('s', $ dt); $ Stmt-> Execute ();
Временные метки в PHP – целые числа (количество секунд от эпохи UNIX). Альтернативой вышесказанному является использование параметра даты / времени целочисленного типа, а функции MySQL FROM_UNIXTIME
и UNIX_TIMESTAMP
$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES (FROM_UNIXTIME(?))"); $stmt->bind_param("i", $your_date_parameter); $stmt->execute();
Я использовал функцию date (), и это решило мне проблему.
$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();
Используйте функцию mySQL now () для полей timestamp.
Для текущей даты / времени вы можете использовать стандартную процедуру MySQL. Вам не нужно это готовить.
$query = "INSERT INTO tablename "; $query .= "VALUES(?,?,?,NOW()) "; $preparedquery = $dbaselink->prepare($query); $preparedquery->bind_param("iii",$val1,$val2,$val3);