comment_confidence
以下のメソッドを使用して、テーブルのフィールドを更新しcomment
ます。
public function update_comment_confidence($confidence_score)
{
$this->db->update($this->_table, array('comment_confidence' => $confidence_score), array('comment_id' => self::$comment_id));
if($this->db->affected_rows() < 1) throw new Exception('failed to update comment confidence');
return;
}
上記のメソッドを呼び出すコードは次のとおりです。
$this->db->trans_start();
$this->create_vote($vote);
try
{
$total_votes = $this->read_comment_total_votes();
$confidence_score = $this->ranking->confidence($total_votes['upvote'],$total_votes['downvote']);
// SKIP UPDATING COMMENT CONFIDENCE IF ITS CONFIDENCE IS 0 AND THE CONFIDENCE_SCORE IS 0
$this->article_comment_model->update_comment_confidence($confidence_score);
}
catch(Exception $e)
{
// transaction is rolled back
throw new Exception($e);
}
$this->db->trans_complete();
update_comment_confidence() メソッドに値 0 が渡され、データベースの値がすでに 0 の場合、例外がスローされます。そして、すべてのテーブルがロールバックされます。これは、更新中に影響を受ける行がなかったためです。これは私が意図した機能ではありません。
フィールドに同じ値が含まれている場合に update_comment_confidence で例外がスローされないようにするにはどうすればよいですか?