2012-05-30 2 views
-2

Я этот запрос представлен в виде строки (его укоротить, чтобы сделать его более удобным для чтения):PHP - вставка даты в базу данных приводит к неправильному формату даты?

$query = 'INSERT INTO mytable (ke_voucher_date) VALUES (\'%s\')'; 

Теперь это то, что мне делать дальше:

$query = vsprintf($query, array_map('mysql_real_escape_string', $params)); 
mysql_query($query); 

$ PARAMS является массив, содержащий все значения, которые должны быть сохранены, в этом случае (поскольку сокращено) только дата в формате dd.mm.yyyy (21.04.2012). Например, результат составляет 21.04.2026. Что не так с кодом, идеями? Может быть,% s?

Спасибо!

+1

Насколько мне известно, MySQL требует формата YYYY-mm-dd. – Corbin

+1

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-types.html - Не могли бы вы объяснить, почему вы используете этот формат даты и почему вы ожидаете его работы? – hakre

ответ

1

«21.04.2012» - это не формат, который нравится MySQL. Вы всегда должны форматировать свои даты как Y-m-d, например. 2012-04-21.

Хотя MySQL пытается интерпретировать значения в нескольких форматах, детали даты всегда должны указываться в порядке год-месяц-день (например, '98 -09-04 '), а не в месяц-день- год или день-месяц-год, обычно используемые в других местах (например, '09 -04-98 ', '04 -09-98').

Смежные вопросы