[英]codeigniter - if model mysql query fails, send flashdata back to the user
我的控制器正在調用模型更新功能:
function update_customer_records( $id, $data )
{
$this->db->where( 'id', $id );
$this->db->update( 'customers', $data );
}
我只是在更新我的桌子。 如果更新失敗,則示例重復的客戶名[唯一字段]我想將flashdata發送回用戶$this->session->set_flashdata('dbaction', 'Update Failed, possible duplicate Customer Name. Please try again or contact the administrator');
所以像這樣:
function update_customer_records( $id, $data )
{
$this->db->where( 'id', $id );
$this->db->update( 'customers', $data );
if(update fails){
$this->session->set_flashdata('dbaction', 'Update Failed, possible duplicate Customer. Please try again or contact the administrator');
redirect('masterdata/create_customer', 'refresh');
} else
{
$this->session->set_flashdata('dbaction', 'Update Successful');
redirect('masterdata/create_customer', 'refresh');
}
}
這會被接受還是有更好的方法來處理呢?
像往常一樣,在此先感謝您。
你可以用這個。 如果受更新影響的行大於1,則返回true;否則返回false
function update_customer_records( $id, $data)
{
$this->db->where( 'id', $id );
$this->db->update( 'customers', $data );
//if affected rows > 0 reutrn true else false
return $this->db->affected_rows() > 0 ? TRUE : FALSE;
}
然后在您的控制器上,您可以將其用作
if($this->model->update_customer_records() == FALSE)
{
// set the flashdata here
}else{
// do what you want if update is successful
}
您可以在模型中使用它:
function update_customer_records( $id, $data ) {
$this->db->where( 'id', $id );
if($this->db->update( 'customers', $data ))
return true;
else
return false;
}
function is_exist($customer_name)
{
$query = $this->db->get_where($customers, array('customer_name' => $customer_name), 1);
if ($query->num_rows() > 0)
return false;
else
return true;
}
並在控制器中使用此:
if($this->model->is_exist($customer_name)
{
$this->db->update_customer_records( $id, $data );
$this->session->set_flashdata('dbaction', 'Update Successful');
}
else
{
$this->session->set_flashdata('dbaction', 'Update Failed, possible duplicate
Customer. Please try again or contact the administrator');
}
redirect('masterdata/create_customer', 'refresh');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.