2012-08-13 128 views
0

當我嘗試字符串替換日期並將其保存在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 

回答

6

由於錯誤指定的日期格式需要爲yyyy-mm-dd

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

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

所以......有什麼問題呢?你已經說過你知道MySQL需要某種格式,但是想使用不支持的格式。如果你堅持使用你的'bad'格式,那麼在插入查詢中使用STR_TO_DATE()進行調查,或者將你的PHP字符串轉換爲有效的MySQL日期格式。

+0

我正要發佈這個。不知道爲什麼有人投票給你。 – Mike 2012-08-13 18:39:34

3

試試這個

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

或者更好的是,如果你只是想添加當前的日期,讓MySQL的爲你做這樣。這消除了對輸入數據進行消毒的需要。

INSERT INTO table SET date_field = NOW();