我正在使用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')";
答案 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
答案 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不允许我这样做:)):