CakePHP3を使ってて、セッション管理をDBにしたくて、
に書かれている通りにしたのです。
config/schema/sessions.sql
CREATE TABLE sessions (
id varchar(40) NOT NULL default '',
data text,
expires INT(11) NOT NULL,
PRIMARY KEY (id)
);
config/app.php
'Session' => [
'defaults' => 'database'
]
そしたら、
session_start(): Failed to decode session object. Session has been destroyed in [/path/to/vendor/cakephp/cakephp/src/Network/Session.php, line 325]
というエラー。
色々調べた結果、sessionsテーブルにmulti-byteが入る場合にそうなるらしい。
sessionsテーブルをutf8で作り直したらエラーが出なくなりました。
config/schema/sessions.sql
CREATE TABLE sessions (
id varchar(40) NOT NULL default '',
data text,
expires INT(11) NOT NULL,
PRIMARY KEY (id)
) CHARSET=utf8;