ФорумРазработкаБазы данных → Капец, не вставялет CURRENT_TIMESTAMP()

Капец, не вставялет CURRENT_TIMESTAMP()

  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:24

    Два вопоса:

    1 бля, помогите, я вообще в потерях. Запрос
    INSERT INTO `session` (`sess_id`, `user_id`, `logged_in`, `last_update`, `created`, `sess_data`) VALUES ("gmlpqmqs66jkleji5quskfmmg2", NULL, 0, CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(), "s:0:\"\";")

    вставляет в last_update 0000-00-00 00:00:00, а в created 2010-08-12 23:19:53. Пиздец, нифига не пойму. И поля местами менял, и там нул там фунцию и наоборот. Пиздец.

    2 Раньше делал такое через поле int и метку time(). Теперь создал поле timestamp. Каки их сравнивать. Например у меня есть секунд количество. А мне надо что бы они сравнились с CURRENT_TIMESTAMP() - last_update например…
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:39, спустя 15 минут 15 секунд

    сталкивался с похожей ситуацией, только пытался задать CURRENT_TIMESTAMP() в default для двух полей в одной таблице. Разрешено только в одно поле, попробуй тут CURRENT_TIMESTAMP() один заменить на NOW(), а второй в дефолт загони.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:49, спустя 10 минут 2 секунды

    disc, причём тут создание, я вставить не могу. Тупо не вставляет именно в поле last_update
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:50, спустя 1 минуту 7 секунд

    kostyl, покажи структуру таблицы.
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:54, спустя 3 минуты 42 секунды

    прикол еще в том, что из myadmina точно такой же запрос всё вставляет… юзаю в скриптах через mysqli - может с ней какая херня?
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 0:57, спустя 3 минуты 41 секунду

    у phpmyadmin вроде можно сменить драйвер на mysqli попробуй переключи и выполни запрос.
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 13 августа 2010 г. 0:59, спустя 1 минуту 57 секунд

    kostyl, ответ по теме топика - попробуй через водный, больше вероятности что вставит =)))
    п.с. Если вместо CURRENT_TIMESTAMP() вручную вписать значение, то добавление происходит?
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 1:17, спустя 17 минут 34 секунды

    Givi,
    INSERT INTO `session` (`sess_id`, `user_id`, `logged_in`, `last_update`, `created`, `sess_data`) VALUES ("3870au2qm1ll5io2s87casln32", NULL, 0, "2010-08-12 23:54:33", "2010-08-12 23:54:33", "s:0:\"\";")

    опять же вставляет только в `created`
    Спустя 61 сек.
     f
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 1:16, спустя 23 часа 59 минут 15 секунд

    у phpmyadmin вроде можно сменить драйвер на mysqli попробуй переключи и выполни запрос.

    пофиг, ничего не поменялось…
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 1:20, спустя 3 минуты 42 секунды

    kostyl, почитай http://www.phpclub.ru/mysql/doc/datetime.html


    Тип столбца TIMESTAMP обеспечивает тип представления данных, который можно использовать для автоматической записи текущих даты и времени при выполнении операций INSERT или UPDATE. При наличии нескольких столбцов типа TIMESTAMP только первый из них обновляется автоматически.


    и все остальное на странице.

    TIMESTAMP помоему выглядит как DATETIME поэтому советую тебе просто перейти на него, т.к. они хранят почти одинаковые данные, формат уж точно един, разнца только с работе с часовым поячсом чтоль. http://habrahabr.ru/blogs/mysql/61391/
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 1:28, спустя 8 минут 21 секунду

    disc, спасибо
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 августа 2010 г. 8:32, спустя 7 часов 3 минуты 42 секунды

    TIMESTAMP помоему выглядит как DATETIME поэтому советую тебе просто перейти на него, т.к. они хранят почти одинаковые данные, формат уж точно един, разнца только с работе с часовым поячсом чтоль. http://habrahabr.ru/blogs/mysql/61391/

    если мне не изменяет память, то он и хранится в практически чистом инт32, а дейт и тайм хранятся более сложно
    Сапожник без сапог
  • disc

    Сообщения: 843 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 11:04, спустя 2 часа 32 минуты 3 секунды

    phpdude, я имел ввиду то, что хранится в табличке идентично DATETIME и можно будет работать такими же функциями как и с DATE
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 13 августа 2010 г. 13:33, спустя 2 часа 29 минут 27 секунд

    Вот это я лошара, в session_write был запрос
    UPDATE `session` SET `last_update` = CURRENT_TIMESTAMP() and `sess_data` = "s:0:\"\";"

    а его же не видно было, ибо я дебажил не в самом самом самом конце скрипта как бе ;)

    Ну их нахер эти timestamp сохраню всё как раньше в int…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 13 августа 2010 г. 13:38, спустя 4 минуты 7 секунд

    А в инте удобно все?)))) ухах
    Спустя 106 сек.
    для всяких last_update надо юзать аттрибут "on update CURRENT_TIMESTAMP" и не парится
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!