如何使用jQuery将日期插入mysql表?

时间:2011-11-10 19:21:42

标签: php jquery mysql datetime

我正在使用jQuery中的datetimepicker,当我从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 个答案:

答案 0 :(得分:6)

使用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 Manual on DATETIME

答案 1 :(得分:1)

使用PHP的日期函数将其转换为MySQL的日期时间格式(YYYY-MM-DD HH:I:S)

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

答案 2 :(得分:0)

我认为问题是插入日期周围缺少引号:

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

给你VALUES 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')";

答案 3 :(得分:0)

这可能超出了您的问题的范围,但您的代码容易受到SQL注入攻击。尝试始终使用数据库库的内置转义/引用方法或使用预准备语句。不确定你使用的是什么库,这里链接很少(我会粘贴更多,但SE不允许我这样做:)):

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

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