Добавляет нули, вместо цифры в поле DATETIME

Патриот

Новичок
Добавляет нули, вместо цифры в поле DATETIME

Цыфра такого вида:
20052909172206
После добавления в базе:
0000-00-00 00:00:00

тип поля: DATETIME

Причем через phpmyadmin всё нормально добавляется.
 
Что, не судьба написать вопрос в правильный форум?

Ответ на твой вопрос здесь:

DATETIME
 
цифр такого вида не бывает.
такого вида бывают только числа.
 
PHP:
mysql_query("INSERT INTO `articles` VALUES ('','$_POST[TITLE]','$_POST[ANNOUNCE]','$_POST[BODY]','$_POST[SUB]','$_POST[ARTICLE_DATE]')");
[SQL]
CREATE TABLE `mig_articles` (
`ID` int(11) NOT NULL auto_increment,
`TITLE` tinytext,
`ANNOUNCE` tinytext,
`BODY` mediumtext,
`SUB` int(11) NOT NULL default '0',
`ARTICLE_DATE` datetime default NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;
[/SQL]
 
у тебя просили запрос не на создание таблицы.
а запрос, вставляющий дату.
а то, что ты здесь нарисовал - это не запрос, а кусок пхп кода, при том кривого
 
Патриот

ты смеешься, где в твоем коде видно ЧТО ты вставляешь в базу? прочитай ссылку которую я дал
 
Хм. Действительно странно. У меня тоже не вставляется. И
SELECT DATE_FORMAT('20052909172206', '%Y') даёт NULL

-~{}~ 29.09.05 16:46:

SELECT DATE_FORMAT('20052909172206', '%Y')
Как строка без разделительных знаков в формате 'YYYYMMDDHHMMSS' или в формате 'YYMMDDHHMMSS', при условии, что строка понимается как дата. Например, величины '19970523091528' и '970523091528' можно интерпретировать как '1997-05-23 09:15:28', но величина '971122129015' является недопустимой (значение раздела минут является абсурдным) и преобразуется в '0000-00-00 00:00:00'.

-~{}~ 29.09.05 16:47:

По-моему с форматом всё в порядке, почему не работает - не ясно.
 
Как строка без разделительных знаков в формате 'YYYYMMDDHHMMSS' или в формате 'YYMMDDHHMMSS', при условии, что строка понимается как дата. Например, величины '19970523091528' и '970523091528' можно интерпретировать как '1997-05-23 09:15:28', но величина '971122129015' является недопустимой (значение раздела минут является абсурдным) и преобразуется в '0000-00-00 00:00:00'.
----------------------------
ребят не подскажете как объяснить MySQL что строка, которую он проглатывает - ДАТА?
 
может быть, привести её в соответствие с указанным форматом?
 
Патриот
Поменяй местами месяц и число 29 и 09. Совсемстными усилиями трёх человек стало видно
 
Автор оригинала: kvf77
ForJest
может потому что 29 месяца не бывает? :-)
точно :)
kvf77
спасибо за статью

Проблема была в том, что формат не тот задавал, сейчас всё работает

-~{}~ 29.09.05 17:54:

Фанат
>а то, что ты здесь нарисовал - это не запрос, а кусок пхп кода, при том кривого
на последок, если не трудно, скажи что там кривое?
 
Патриот

ты будешь смеяться, но там ВСЕ кривое. ты не пробовал включать сообщения об ошибках PHP? узнаешь всякого интересного дела.

1) всегда название элементов (если это не константы) в массивах бери в кавычки
2) никогда не лей в базу НЕ ПРОВЕРЕННЫЕ даныые, которые тебе передают пользователь
 
Вот весь код, он меня защитит от хакеров или ещё что то надо добавить?
PHP:
       if(isset($_POST['TITLE']) && isset($_POST['ANNOUNCE']) && isset($_POST['BODY'])&& isset($_POST['SUB']) && isset($_POST['ARTICLE_DATE']))
       {

       $_POST['ARTICLE_DATE']=str_replace(" ", "", $_POST['ARTICLE_DATE']);
       $_POST['ARTICLE_DATE']=str_replace(".", "", $_POST['ARTICLE_DATE']);
       $_POST['ARTICLE_DATE']=str_replace(":", "", $_POST['ARTICLE_DATE']);

       if(!is_numeric($_POST['SUB'])) exit();
       $_POST['TITLE']=addslashes($_POST['TITLE']);
       $_POST['ANNOUNCE']=addslashes($_POST['ANNOUNCE']);
       $_POST['BODY']=addslashes($_POST['BODY']);

       mysql_query("INSERT INTO `articles` VALUES ('','$_POST[TITLE]','$_POST[ANNOUNCE]','$_POST[BODY]','$_POST[SUB]','$_POST[ARTICLE_DATE]')");
       print "Добавлено";
       }

-~{}~ 29.09.05 18:02:

я ухожу, завтра почитаю ответы и отвечу :)
спасибо вам
 
kvf77
название элементов
1. в массивах нет никаких названий элементов.
2. синтаксис ключей ассоциативных массивов ничем не отличается от синтаксиса пхп.
то есть никакие элементы в кавычках писать не надо.
надо просто писать ключ с соблюдений правил синтаксиса.

-~{}~ 29.09.05 18:02:

Патриот
читай здесь: PHP FAQ: \"Кавычки \". Cоставление запросов mysql, слеши, экранирование кавычек.
 
Сверху