Поле ‘user_data’ не имеет значения по умолчанию в CI 2.0.3

#mysql #database #session-variables #codeigniter-2

#mysql #База данных #переменные сеанса #codeigniter-2

Вопрос:

Я использовал руководство пользователя CI для создания моей таблицы сеансов.

 CREATE TABLE IF NOT EXISTS  `sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);
  

Эта ошибка появляется всякий раз, когда у меня $db['default']['stricton'] = TRUE в моем database.php

Номер ошибки: 1364

Поле ‘user_data’ не имеет значения по умолчанию

ВСТАВИТЬ В sessions ( session_id , ip_address , user_agent , last_activity ) ЗНАЧЕНИЯ (‘2b92823888c4c5eb4b5b2ae25282ce9e’, ‘192.168.1.4’, ‘Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit /535.1 (KHTML, как Gecko) Chrome / 14.0.835.186 Safari /535.1’, 1317346730)

Имя файла: libraries/Session.php

Номер строки: 327

Тем не менее, я хочу применить строгий SQL.

Ответ №1:

Из ссылки — столбцы BLOB и TEXT не могут иметь значения ПО УМОЛЧАНИЮ.

Типы BLOB и TEXT

Вы должны добавить user_data поле в свой оператор INSERT.

Комментарии:

1. Спасибо. Отредактировал класс сеанса в системных библиотеках. Добавьте 'user_data' => '' в массив userdata в функции sess_create() .