2017-01-13 14 views
-1

データのみが正常に更新された場合は、電子メールを送信したいと考えています。それを行う適切な方法は何ですか。私は現在使用しています:データがCIで正常に更新されたかどうかを確認するにはどうすればよいですか?

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

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

データが更新されなかった場合、電子メールは送信されません。

+1

私はあなたが何をすべきかと思います。 '$ dataupdate'の列名を変更して' $ statusupdate'が 'FALSE'になっていることを確認してください。 – masterFly

答えて

0

codeigniterの挿入または更新用。 affected_rows()機能で確認できます。 $this->db->affected_rows()を使用できます。 2つのオプションに従うことができます。

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

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

関連する問題