Как мне вставить дату в таблицу MySQL, используя jQuery? - PullRequest
1 голос
/ 10 ноября 2011

Я использую datetimepicker из jQuery, и когда я выбираю дату из datetimepicker, она помещает ее в этот формат:

  11/10/2011 14:02

Теперь, когда я пытаюсь вставить ее в мою таблицу SQL, как это

INSERT INTO MYTABLE (date, name) values ('$_POST[datepicker]','$_POST[name]')

там написано, что дата не в правильном формате.

Может кто-нибудь помочь мне определить, как отформатировать такую ​​дату, чтобы она принималась полем datetime ()?

Спасибо

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '14:33:00,1,2,'Y')' at line 2

        $datetosave = date("Y-m-d H:i:s", strtotime($_POST[date]));

$insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
                     VALUES ($datetosave,$_POST[cars],2,'Y')";

Ответы [ 4 ]

6 голосов
/ 10 ноября 2011

Используйте формат YYYY-MM-DD HH:MM:SS, например: 2011-11-10 14:02.

В идеале вам нужно настроить плагин jQuery для вывода в правильном формате. Если это невозможно, вы можете преобразовать его в правильный формат, проанализировав дату, используя функции PHP strtotime() и date():

echo date('Y-m-d H:i:s', strtotime('11/10/2011 14:02')); 
// prints 2011-11-10 14:02:00

Ссылка: Руководство MySQL по DATETIME

1 голос
/ 10 ноября 2011

Используйте функцию даты PHP, чтобы преобразовать ее в формат даты и времени MySQL (ГГГГ-ММ-ДД ЧЧ: I: S)

$mytime = date('Y-m-d H:i:s', strtotime('11/10/2011 14:02'));

0 голосов
/ 11 ноября 2011

Это может выходить за рамки вашего вопроса, но ваш код уязвим для атак SQL-инъекций.Старайтесь всегда использовать встроенные методы экранирования / цитирования вашей библиотеки базы данных или используйте подготовленные операторы.Не уверен, какую библиотеку вы используете, поэтому здесь мало ссылок (я бы вставил больше, но SE не позволяет мне сделать это :)):

http://php.net/manual/en/pdo.prepare.php

http://php.net/manual/en/mysqli.real-escape-string.php

0 голосов
/ 11 ноября 2011

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

$insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
VALUES ($datetosave,$_POST[cars],2,'Y')";

дает вам значения 2011-11-10 14: 33: 00,1,2, 'Y'

Добавить отметки около $ datetosave

$insert_q = "INSERT INTO reservations (res_date, res_numofseats, user_id, rsvp)
VALUES ('".$datetosave."',$_POST[cars],2,'Y')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...