插入日期到MySQL数据库 - 错误
问题描述:
当我尝试字符串替换日期并将其保存在mySQL
数据库中时出现错误。原因是DATE
字段的格式。我在下面添加了我的PHP
代码和mySQL
错误消息。插入日期到MySQL数据库 - 错误
$nowDate = str_replace('/', '-', $_POST['datenow']);
echo $nowDate;
输出>08-15-2012
,我将这个记录到数据库中,但MySQL
数据库需要的格式yyyy-mm-dd
(2012-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日期格式。
答
试试这个
$nowDate = date('Y-m-d',strtotime($_POST['datenow']));
或者更好的是,如果你只是想添加当前的日期,让MySQL的为你做这样。这消除了对输入数据进行消毒的需要。
INSERT INTO table SET date_field = NOW();
我正要发布这个。不知道为什么有人投票给你。 – Mike 2012-08-13 18:39:34