2012-08-13 4 views
0

Я получаю сообщение об ошибке при попытке строки заменить дату и сохранить ее в файле mySQL db. Причиной является формат поля DATE. Я добавил код PHP и mySQL сообщение об ошибке ниже.Вставить DATE в MySQL DB - Ошибка

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

echo $nowDate; 

Output>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 

ответ

6

Как указывает ошибка, Формат даты должен быть yyyy-mm-dd.

Вы можете отформатировать его перед установкой его с date() и strtotime():

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

... Так в чем проблема? Вы уже сказали, что знаете, что MySQL требует определенного формата, но вы хотите использовать формат, который не поддерживается. Если вы настаиваете на использовании своего «плохого» формата, то исследуйте с помощью STR_TO_DATE() в своем запросе на ввод или преобразуйте строку PHP в допустимый формат даты MySQL.

+0

Я как раз собирался опубликовать это. Не уверен, почему кто-то проголосовал за вас. – Mike

3

Попробуйте

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

Или еще лучше, если вы просто пытаетесь добавить текущую дату, пусть MySQL сделать это для вас, как это. Это устраняет необходимость дезинфекции входных данных.

INSERT INTO table SET date_field = NOW(); 
Смежные вопросы