操作
Bug(バグ) #2001
完了DBMSにSQLiteを使用すると、他人の日記にコメントを書き込む時にエラーが発生する
開始日:
2011-04-10
期日:
進捗率:
100%
予定工数:
3.6 で発生するか:
[QA]バグ通知済:
いいえ
3.8 で発生するか:
説明
Overview (現象)¶
DBMSにSQLiteを使用しているSNSで、他人の日記にコメントを書き込むと
SQLSTATE[23000]: Integrity constraint violation: 19 diary_comment_update.last_comment_time may not be NULL, referer: http://sns.localhost/sqlite/diary/7
のようなエラーが発生する
Causes (原因)¶
diary_comment_update.last_comment_time にNOT NULL制約があるが、PluginDiaryCommentUpdateTable::update() メソッドで last_comment_time に値がセットされないままINSERTを実行しようとしている。
Way to fix (修正内容)¶
INSERT前に last_comment_time に値をセットする処理を追加
--- a/lib/model/doctrine/PluginDiaryCommentUpdateTable.class.php
+++ b/lib/model/doctrine/PluginDiaryCommentUpdateTable.class.php
@@ -28,6 +28,7 @@ class PluginDiaryCommentUpdateTable extends Doctrine_Table
}
$object->setMyLastCommentTime(date('Y-m-d H:i:s'));
+ $object->setLastCommentTime(date('Y-m-d H:i:s'));
$object->save();
$this->createQuery()->update()
操作