我只是站在一个新的CakePHP 1.3.14项目中,我以前从未见过的东西正在发生在我的数据库会话存储中。似乎会话记录试图在没有id的情况下存储:
SQL Error: 1062: Duplicate entry '' for key 'PRIMARY'
Query: INSERT INTO `cake_sessions` (`data`, `expires`) VALUES ('<remove for space>', 1328115862)
出于某种原因,它甚至没有尝试填充id
字段。我正在做的就是加载主页。当然,如果表为空,则第一次加载是可以的,但后续重新加载会显示此消息,因为初始会话记录没有id存储。
之前有人见过这个吗?
感谢。
更新
# Relevant settings
Configure::write('Session.save', 'database');
Configure::write('Session.model', 'Session');
Configure::write('Session.cookie', 'CAKEPHP');
Configure::write('Session.timeout', '120');
Configure::write('Session.start', true);
Configure::write('Session.checkAgent', true);
答案 0 :(得分:0)
您是否在主键字段上设置了auto_increment?或者您使用的是UUID?如果您使用的是UUID,请确保主键的字段类型为CHAR(36)。否则,只需在该字段中添加一个自动增量,MySQL将处理为PK添加字段值。
答案 1 :(得分:0)
原来,代码库有一个AppModel
,其中创建了一个排除id属性的默认白名单。由于Session
模型扩展了AppModel
,因此该属性被忽略。有趣的东西。