如何检查CI中是否已成功更新数据?

时间:2017-01-13 07:48:53

标签: php codeigniter

如果只是数据成功更新,我想发送电子邮件。这样做的正确方法是什么。我目前使用:

$statusupdate   = $this->ModelComplaint->update($idcomplaint, $dataupdate);

if($statusupdate){
   //email code should be here
}

如果数据无法更新,则不会发送电子邮件。

2 个答案:

答案 0 :(得分:0)

用于codeigniter中的插入或更新。 您可以通过affected_rows()功能进行检查。 您可以使用$this->db->affected_rows()。 所以你可以遵循两个选择。

1)选项-1: -

return ($this->db->affected_rows() != 1) ? false : true;

2)选项-2: - 简单地返回,

return $this->db->affected_rows() > 0

您可以在此链接中找到更多相关信息:http://henrypeteralbers.com/user_guide/libraries/database/results.html

答案 1 :(得分:0)

最好的方法是使用codeigniter的事务机制,如下所示:

$this->db->trans_begin();//begins your transaction
$data =<data> //data for upadating
$this->db->where('id', $id);//where condition
$this->db->update('table_name',$data);//update query

 if ($this->db->trans_status() === FALSE)//checks transaction status
    {
        $this->db->trans_rollback();//if update fails rollback and  return false
       return FALSE;

    }
    else
    {
        $this->db->trans_commit();//if success commit transaction and returns true
        //Send Mail here
        return TRUE;
    }

有关详情,请参阅此处https://www.codeigniter.com/user_guide/database/transactions.html