这是我的HTML代码:
<p>Leave duration:<input type = "date" name="leave_start"/>to
<input type = "date" name="leave_end"/></p>
下面是我的SQL代码:
$sql = ("INSERT INTO `leave` ( `Leave_Start` , `Leave_End` )
VALUES({$_POST["leave_start"]},{$_POST["leave_end"]}')");
答案 0 :(得分:3)
忽略代码中令人讨厌的SQL injection attack漏洞,在数据库中执行与日期相关的操作时,必须使用MySQL的本机日期字符串格式,例如:日期+时间yyyy-mm-dd
或yyyy-mm-dd hh:mm:ss
。如果您尝试插入其他内容,MySQL将 TRY 将其解释为日期,但不会尝试太多。任何无法正确解释的日期都会显示为0000-00-00
版本。
这意味着
... VALUES ('2013-08-01', '2013-08-31');
会起作用,但类似
... VALUES ('Aug 01/2013', '31st August 2013')
完全失败。