Я использую сеансы с поддержкой данных для codeigniter 1.7.3, и кажется, что некоторые пользователи получают ошибку:
Номер ошибки: 1364
Поле 'user_data' не имеет значения по умолчанию
INSERT INTO `phppos_sessions` (`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES ('8efeb8a2708af2ea799584ff50aa3c2f', '127.0.0.1', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) Ap', 1302002136)
У меня был один из пользователей, пытавшийся исправить это, используя рекомендуемые настройки версии 2, но он сказал, что это не сработало, поэтому я попросил его сделать столбец обнуляемым, и это, похоже, сработало. (Что, кажется, работает)
Что вы думаете о том, что делать? (У меня довольно большая пользовательская база, и я не хочу их портить)
Рекомендуемые настройки воспламенителя кода (версия 1.7.3)
CREATE TABLE `phppos_sessions` (
`session_id` varchar(40) NOT NULL DEFAULT '0',
`ip_address` varchar(16) NOT NULL DEFAULT '0',
`user_agent` varchar(50) NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT 0,
`user_data` text NOT NULL DEFAULT '',
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Рекомендуемые настройки воспламенителя кода (версия 2)
CREATE TABLE `phppos_sessions` (
`session_id` varchar(40) NOT NULL DEFAULT '0',
`ip_address` varchar(16) NOT NULL DEFAULT '0',
`user_agent` varchar(50) NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT 0,
`user_data` text NOT NULL DEFAULT '',
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Что, кажется, работает
CREATE TABLE `phppos_sessions` (
`session_id` varchar(40) NOT NULL DEFAULT '0',
`ip_address` varchar(16) NOT NULL DEFAULT '0',
`user_agent` varchar(50) NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT 0,
`user_data` text NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;