MySQL:更新具有相同值的字段

时间:2013-11-05 07:30:16

标签: php mysql

我使用以下方法更新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中抛出异常?

1 个答案:

答案 0 :(得分:1)

如果我是你,我不会在受影响的行时抛出异常&lt; 1

if($this->db->affected_rows() < 1)

出现错误时抛出异常。