Использование Mysqli bind_param со столбцами даты и времени? - PullRequest
49 голосов
/ 30 апреля 2009

Как вставить данные в столбец даты или времени MySQL, используя PHP mysqli и bind_param?

Ответы [ 7 ]

79 голосов
/ 30 апреля 2009

Как и любая другая строка

$stmt = $mysqli->prepare('insert into foo (dt) values (?)');
$dt = '2009-04-30 10:09:00';
$stmt->bind_param('s', $dt);
$stmt->execute();
12 голосов
/ 28 июля 2009

Временные метки в 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();
1 голос
/ 19 апреля 2017

Для текущей даты / времени вы можете использовать стандартную процедуру MySQL. Вам не нужно готовить это.

$query  = "INSERT INTO tablename ";
$query .= "VALUES(?,?,?,NOW()) ";
$preparedquery = $dbaselink->prepare($query);
$preparedquery->bind_param("iii",$val1,$val2,$val3);
1 голос
/ 06 октября 2015

Я использовал функцию date (), и это решило проблему.

$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 голосов
/ 27 мая 2019

$ q = "вставить в order_details (order_id, product_id, product_name, product_quantity, product_price, made_at, updated_at) значения (?,?,?,?,?, NOW (), NOW ())";

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

mysqli_stmt_bind_param ($ stmt, 'iisid', $ ord, $ pid, $ _SESSION ['product_name'], $ qty, $ price);

0 голосов
/ 19 января 2018

сначала установите дату и время, используя функцию date () -

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

затем передайте его в подготовленный оператор, как и любую другую строковую переменную-

$stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn, timeColumn) VALUES (?,?)");
$stmt->bind_param("ss", $date , $time);
$stmt->execute();
0 голосов
/ 22 октября 2015

Используйте функцию mySQL now () для полей меток времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...