Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Странности в запросе или функция date и MySQL


Автор: Папараццы 22.10.2007, 07:16
Есть что то вроде этого 
Код

$date=date("Y-m-d");
echo "<br>".$date;
$query="INSERT INTO event('date') VALUES ('".$date."') ";  //-> На исполнение
 
 Так значит date у меня в формате date в MySQL. Вывод echo 2007.10.22! 
при вводе ..VALUES ('2007-10-22')  почему то все работает. В чем ошибка ? 
 Не работает.. Не понять почему :(
 

Автор: flashaa 22.10.2007, 12:16
Текст ошибки в студию.

Автор: Папараццы 22.10.2007, 13:23
Ругается что '' is incorrect date format

Автор: mishaSL 22.10.2007, 13:36
Цитата(Папараццы @  22.10.2007,  07:16 Найти цитируемый пост)
Вывод echo 2007.10.22! 

По всей видимости должно выводить: 2007-10-22

А не проще сделать так:
Код

$query="INSERT INTO event('date') VALUES (NOW()) ";


Если не работает, то уточните какой тип поля date.

Автор: Папараццы 22.10.2007, 13:58
Так работает... раьотает если даже вписать дате. date("Y-m-d"); А так не работает :( 

Автор: mishaSL 22.10.2007, 14:13
Цитата(Папараццы @  22.10.2007,  13:58 Найти цитируемый пост)
А так не работает :(  

Выведи полностью обработанный SQL запрос который уже идет в БД.

Автор: dsCode 22.10.2007, 14:38
Папараццы, да и не будет работать, потому что формат данных в MySQL для даты через тире. Так что, либо через DATE(NOW()) (SQL), либо через date("Y-m-d"); (PHP).

Автор: Папараццы 22.10.2007, 14:49
С "-" тоже самое... с точками тоже работает... 

Автор: sTa1kEr 23.10.2007, 08:49
Цитата(Папараццы @  22.10.2007,  08:16 Найти цитируемый пост)
$query="INSERT INTO event('date') VALUES ('".$date."') ";

Имена полей нужно обрамлять обратными апострофами, а не кавычками.
Код

$query="INSERT INTO event(`date`) VALUES ('".$date."')";


Цитата(dsCode @  22.10.2007,  15:38 Найти цитируемый пост)
Папараццы, да и не будет работать, потому что формат данных в MySQL для даты через тире.

Зачем же гадать на кофейной гуще, когда есть полная документация? http://dev.mysql.com/doc/refman/4.1/en/datetime.html
Цитата

 You can specify DATETIME, DATE, and TIMESTAMP values using any of a common set of formats:

    * As a string in either 'YYYY-MM-DD HH:MM:SS' or 'YY-MM-DD HH:MM:SS' format. A “relaxed” syntax is allowed: Any punctuation character may be used as the delimiter between date parts or time parts. For example, '98-12-31 11:30:45', '98.12.31 11+30+45', '98/12/31 11*30*45', and '98@12@31 11^30^45' are equivalent.
    * As a string in either 'YYYY-MM-DD' or 'YY-MM-DD' format. A “relaxed” syntax is allowed here, too. For example, '98-12-31', '98.12.31', '98/12/31', and '98@12@31' are equivalent.
    * As a string with no delimiters in either 'YYYYMMDDHHMMSS' or 'YYMMDDHHMMSS' format, provided that the string makes sense as a date. For example, '19970523091528' and '970523091528' are interpreted as '1997-05-23 09:15:28', but '971122129015' is illegal (it has a nonsensical minute part) and becomes '0000-00-00 00:00:00'.
    * As a string with no delimiters in either 'YYYYMMDD' or 'YYMMDD' format, provided that the string makes sense as a date. For example, '19970523' and '970523' are interpreted as '1997-05-23', but '971332' is illegal (it has nonsensical month and day parts) and becomes '0000-00-00'.
    * As a number in either YYYYMMDDHHMMSS or YYMMDDHHMMSS format, provided that the number makes sense as a date. For example, 19830905132800 and 830905132800 are interpreted as '1983-09-05 13:28:00'.
    * As a number in either YYYYMMDD or YYMMDD format, provided that the number makes sense as a date. For example, 19830905 and 830905 are interpreted as '1983-09-05'. 


Автор: Папараццы 23.10.2007, 08:55
Дело в том что сам запрос выводился не правильноюю Проблема не в MySQL а в могем PHP скрипте была...  Я в начале скрипта проверял на наличие ввода данных в поля... Так в поле дате я вместо == вписал ="" . Народ извените! Всем благодарен! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)