2017-01-13 6 views
-1

Я бы хотел отправить электронное письмо, если только данные будут успешно обновлены. Каков правильный способ сделать это. В настоящее время я использую:Как проверить, были ли данные успешно обновлены в CI?

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

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

Если данные не обновляются, сообщение не отправляется.

+1

Я думаю, что у вас есть должны работать. Попробуйте изменить имя столбца в '$ dataupdate', чтобы увидеть' $ statusupdate', получив 'FALSE'. – masterFly

ответ

0

Для ввода или обновления в кодеигниторе. Вы можете проверить его через функцию affected_rows(). Вы можете использовать $this->db->affected_rows(). Итак, вы можете выбрать два варианта.

1) Вариант-1: -

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

2) Вариант-2: - Просто Return,

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

Вы можете найти более подробную информацию по этой ссылке: http://henrypeteralbers.com/user_guide/libraries/database/results.html

0

. Лучший способ - использовать механизм транзакций кодеригнера, как показано ниже:

$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

Смежные вопросы