插入日期到MySQL数据库 - 错误

插入日期到MySQL数据库 - 错误

问题描述:

当我尝试字符串替换日期并将其保存在mySQL数据库中时出现错误。原因是DATE字段的格式。我在下面添加了我的PHP代码和mySQL错误消息。插入日期到MySQL数据库 - 错误

$nowDate = str_replace('/', '-', $_POST['datenow']); 

echo $nowDate; 

输出>08-15-2012,我将这个记录到数据库中,但MySQL数据库需要的格式yyyy-mm-dd2012-08-15),否则我得到一个错误

Unable1 to run query:Incorrect date value: '08-15-2012' for column 'now_date' at row 1 

由于错误指定的日期格式需要为yyyy-mm-dd

您可以用date()strtotime()插入它之前格式化:

$nowDate = date('Y-m-d', strtotime($_POST['datenow'])); 

所以......有什么问题呢?你已经说过你知道MySQL需要某种格式,但是想使用不支持的格式。如果你坚持使用你的'bad'格式,那么在插入查询中使用STR_TO_DATE()进行调查,或者将你的PHP字符串转换为有效的MySQL日期格式。

+0

我正要发布这个。不知道为什么有人投票给你。 – Mike 2012-08-13 18:39:34

试试这个

$nowDate = date('Y-m-d',strtotime($_POST['datenow'])); 

或者更好的是,如果你只是想添加当前的日期,让MySQL的为你做这样。这消除了对输入数据进行消毒的需要。

INSERT INTO table SET date_field = NOW();