2012-02-01 18 views
0

私は新しいCakePHP 1.3.14プロジェクトを立ち上げています。以前は見たことのないものがデータベースセッションのストレージで起こっています。それは、セッションレコードは、IDなしで保存された取得しようとしているようだ:IDを持たないセッションの挿入

SQL Error: 1062: Duplicate entry '' for key 'PRIMARY' 
Query: INSERT INTO `cake_sessions` (`data`, `expires`) VALUES ('<remove for space>', 1328115862) 

何らかの理由で、それもidフィールドを移入しようとしていません。私がやっているのはホームページをロードすることだけです。テーブルが空であれば最初のロードは大丈夫ですが、最初のセッションレコードがIDなしで格納されているため、後でリロードするとこのメッセージが表示されます。

誰でもこれまでに見たことがありますか?

ありがとうございました。

UPDATE

# 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

コードベースにはAppModelがあり、idプロパティを除いたデフォルトのホワイトリストが作成されていました。 SessionモデルがAppModelに拡張されているため、このプロパティは無視されていました。面白いもの。

0

あなたは主キーフィールドにAUTO_INCREMENTセットを持っていますか?または、あなたはUUIDを使用していますか? UUIDを使用している場合は、主キーのフィールドタイプがCHAR(36)であることを確認してください。それ以外の場合は、そのフィールドに自動インクリメントを追加するだけで、MySQLはPKのフィールド値の追加を処理します。

+0

これは、varchar idフィールドを持つCakeの 'cake_sessions'テーブルを使用します。それはコアの一部なので、エラーでもカスタムでもありません。 –

+0

これはあなたの問題に関連していますか? http://cakephp.lighthouseapp.com/projects/42648/tickets/1450 –

+0

実際、それはまさに私の問題かもしれないようです。残念ながら、私は最新の1.3を使用しているので、バグはおそらく修正されていますが、Lighthouseで詳細情報を失う可能性があります。ありがとう。 –

関連する問題