2010-05-28 2 views
11

Я пытаюсь вставить дату и время в поле mysql datetime. Когда пользователь выбирает дату и время, он генерирует две переменные POST. Я искал интернет, но все еще не знаю, как это сделать.Вставить дату и время в Mysql

Мой код.

//date value is 05/25/2010 
//time value is 10:00 

$date=$_POST['date']; 
$time=$_POST['time']; 

$datetime=$date.$time 

Если вставить $ DateTime в MySQL, дата, кажется, 0000-00-00: 00: 00: 00

Я ценю это, если кто-то может помочь мне об этом. Благодарю.

+1

+1 всем ответим! Спасибо, ответ GSTo! – FlyingCat

ответ

7
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00'; 
$datetime = mysql_real_escape_string($datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 

альтернативное решение, которое может обрабатывать больше форматов:

$datetime = $_POST['date'] . ' ' . $_POST['time']; 
$datetime = mysql_real_escape_string($datetime); 
$datetime = strtotime($datetime); 
$datetime = date('Y-m-d H:i:s',$datetime); 
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')"; 
+0

приятное решение! Благодаря! – FlyingCat

+0

hm .... кто-то дал вам -1..не уверен, почему ... – FlyingCat

+1

Поскольку первый фрагмент содержит уязвимость SQL-инъекции. Еще один -1 от меня.:-P :-) – Notinlist

3

Я думаю, что формат даты и времени выглядит следующим образом:

YYYY-MM-DD HH:MM:SS 

так что вы должны форматировать $ DateTime, чтобы выглядеть. И в вашем запросе, который должен быть инкапсулирован в отметках квоты.

2
  • Либо вы преобразовать строку, чтобы быть в формате YYYY-MM-DD HH:MM:SS самостоятельно,
  • или использовать str_to_date() функцию из MySQL.

    ВСТАВИТЬ в значения DATETIME таблицы (str_to_date ($ даты, "% м /% г /% Y% H:% I"))

1

Насколько я помню, по умолчанию, Mysql DateTime должен быть в формате «yyyy-mm-dd hh: mm: ss».

4

Дата должна быть формат показал вам: 0000-00-00 00:00:00

Таким образом, вы должны преобразовать его. Есть тысячи вопросов об этом преобразовании здесь на SO.
Самый короткий путь, как

list($m,$d,$y) = explode("/",$_POST['date']); 
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']); 
0

Я добавил дату и время в БД MySQL через API, как это:


вызовов API

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. odate типа DATE
  2. otime тип ВРЕМЯ в БД.

Он будет хранить Odate в 2012-03-23 ​​и ВРЕМ в 16:45:45.