会话插入没有id

时间:2012-02-01 13:49:56

标签: cakephp-1.3

我只是站在一个新的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);

2 个答案:

答案 0 :(得分:0)

您是否在主键字段上设置了auto_increment?或者您使用的是UUID?如果您使用的是UUID,请确保主键的字段类型为CHAR(36)。否则,只需在该字段中添加一个自动增量,MySQL将处理为PK添加字段值。

答案 1 :(得分:0)

原来,代码库有一个AppModel,其中创建了一个排除id属性的默认白名单。由于Session模型扩展了AppModel,因此该属性被忽略。有趣的东西。