Following function is written in codeigniter 3 for deleting user:
public function deleteUser($id) {
$this->db->trans_start();
$this->db->where('usma_user_id', $id);
$this->db->delete('ec_usma_usermain');
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$transResult = array(
'response' => 'Operation failed!',
'status' => TRUE
);
} else if ($this->db->trans_status() === TRUE) {
if($this->db->affected_rows() > 0 ) {
$transResult = array(
'response' => 'Operation executed successfully!',
'status' => TRUE
);
} else {
$transResult = array(
'response' => 'Unexpected error! Contact admin.',
'status' => FALSE
);
}
}
return $transResult;
}
In above function even when there is a row and it is deleted response returned is
Unexpected error! Contact admin
Which means value returned by
echo $this->db->affected_rows();
is 0 (zero). So I checked (echoed) the output of
echo $this->db->affected_rows();
before
echo $this->db->trans_complete();
is executed, it returned no. of deleted rows (in my case 1 row) and if same line of code is written after
echo $this->db->trans_complete();
it returns 0. Why is it so?