Следующая функция записана в codeigniter 3 для удаления пользователя:
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;
}
В вышеприведенной функции, даже если есть строка, и она удалена, возвращается ответ
Неожиданная ошибка! Связаться с администратором
Что означает значение, возвращаемое
echo $this->db->affected_rows();
равно 0 (ноль). Поэтому я проверил (повторил) вывод
echo $this->db->affected_rows();
до
echo $this->db->trans_complete();
выполнено, возвращено нет. удаленных строк (в моем случае 1 строка) и если такая же строка кода написана после
echo $this->db->trans_complete();
возвращает 0. Почему это так?