![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
Есть таблица в базе. В таблице есть поле, тип DATETIME. Хочу туда занести дату время, делаю следующее:
Не работает. Заносятся нули. Почему? -------------------- ![]() |
|||
|
||||
Rigel |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
Я не знаю всю структуру таблицы, однако сильно подозреваю, что твое поле стоит не вторым... Пиши лучше так: $sql="INSERT INTO `tbltemp` (field, date) VALUES('$wr',NOW())"; И будет тебе щастье... --------------------
С уважением. Rigel. http://www.smoliy.ru |
||||
|
|||||
aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
Да суть не в этом. Да, оно не второе, но до него и после все нормально вставляется, а именно оно нет. Полный запрос выглядит примерно так:
Это сообщение отредактировал(а) aktuba - 22.8.2007, 12:32 -------------------- ![]() |
||||
|
|||||
Rigel |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
Значит, формат даты в переменной неверный. Если нужно вставить дату текущего момента, напиши так, как я показал в предыдущем письме - команда NOW() --------------------
С уважением. Rigel. http://www.smoliy.ru |
||||||
|
|||||||
silverghost |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.12.2005 Где: Россия, Тольятти Репутация: нет Всего: нет |
Если не нравится формат то можно и так
|
|||
|
||||
-=Ustas=- |
|
||||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 32 Всего: 69 |
У тебя в SQL запросе несовпадение типов, т.к. ты пихаешь в это поле целое число
Лучше всего, ( если тебе не нужно будет вычислять даты рождения в полях дат) используй тип INT, забивай туда даты как time() ( т.е. интеджер ) и не будет у тебя никаких проблем. -------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
||||
|
|||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: нет Всего: 38 |
-=Ustas=-, спасибо за подробное объяснение. +
-------------------- ![]() |
|||
|
||||
BrainWorker |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 9.8.2007 Где: Дубна, Россия Репутация: 1 Всего: 2 |
Ты в своем запросе полю id (как я понимаю это первичный ключ) ставишь значени NULL! Если ты полагаешься на автоматическую генерация ключа при создании новой записи, то не указывай id в списке полей запроса INSERT, но если указываешь, то указывай разумные и допустимые значения. ID не может быть NULL ПО ОПРЕДЕЛЕНИЮ Это сообщение отредактировал(а) BrainWorker - 22.8.2007, 18:05 |
||||
|
|||||
sw04 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 22.1.2007 Где: Ufa Репутация: нет Всего: 18 |
почему бы не так? Это сообщение отредактировал(а) sw04 - 23.8.2007, 00:21 -------------------- <удалено администрацией> |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 32 Всего: 401 |
-=Ustas=-, т.е. если в DATETIME-поле сунуть число, например, 20070823 или 20070823125959, то в итоге из-за несовпадения типов запишется дата 0000-00-00 00:00:00? В каких случаях и для каких типов таблиц это так (только что поэкспериментировал с MyISAM - не воспроизвелось, записалась сегодняшняя дата...)? Ни в коей мере не хочу снова поднять холивор на тему "INT vs. DATETIME", просто спрашиваю;) -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Severyanin |
|
|||
![]() Исследователь ![]() ![]() Профиль Группа: Участник Сообщений: 554 Регистрация: 31.7.2007 Где: Россия, Омск Репутация: нет Всего: 9 |
Для MyISAM вообще обычно выдает ошибку записи - несовпадение типов, и не записывает ничего. Оператор INSERT не выполняется.
-------------------- "Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл "Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов |
|||
|
||||
sTa1kEr |
|
||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Нет, во всех типах таблицах все будет записываться корректно, если, конечно, формат верный и mysql удастся распарсить число. The DATETIME, DATE, and TIMESTAMP Types - здесь все подробно расписано как работает MySQL с датами.
Единственный момент, когда могут быть проблемы с датами - это при работе через pdo_mysql с Prepared Statements. При биндинге даты она должна быть формата YYYY-MM-DD HH:MM:SS. Хотя это могли уже поправить, я не проверял. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |