codeigniter db->delete () returns always true?
저는 레코드와 "삭제" 이미지가 있는 테이블을 표시했습니다.이미지 삭제 클릭 시 ax를 사용하여 레코드를 삭제합니다. ID가 40,41,42인 레코드가 3개 있다고 가정합니다. ID가 = 40인 레코드를 삭제하면 response가 "1"을 반환하고 레코드가 삭제되고, 다음 번에 이미지 삭제를 다시 클릭하면 "1"을 반환합니다.
codeigniters db->delete () 메서드는 항상 "1"을 반환합니다. ? 레코드가 존재하는지 수동으로 확인한 후 삭제를 진행해야 합니까? 아래는 ajax에 있는 제 코드 i입니다.
$res = $this->db->delete(tbl_user_groups, array('owner_id' => $admin,'user_group_id'=>$gid));
if($res) echo json_encode (array("success"=>"true"));
else echo json_encode (array("success"=>"false"));
db->delete()가 반환됩니다.TRUE
, 삭제 작업이 성공한 경우.그것은 돌아올 뿐입니다.FALSE
행을 삭제할 수 없는 경우.제 생각에 당신은 다음과 같은 것을 확인해야 합니다.
$this->db->affected_rows();
If 조건으로 확인할 수 있는 부울이 아닌 숫자를 반환합니다.
codeigniter 2.2.0에서 db를 삭제할 때$this->db->delete()
우리는 두 개의 플래그로 작동할 수 있습니다: 1.$this->db->_error_message()
그리고 2.$this->db->affected_rows()
따라서 db 쿼리 후에 다음과 같은 1과 2를 얻습니다.
DELETED: ', 1
NOT DELETED: ', ID가 있는 0 // 행을 찾을 수 없지만 sql completed ok
SQL ERROR: 문자열, -1
제 선택은 다음과 같은 체크입니다.
$this->db->delete($this->table,array('id'=>$id));
if ($this->db->_error_message()) {
$result = 'Error! ['.$this->db->_error_message().']';
} else if (!$this->db->affected_rows()) {
$result = 'Error! ID ['.$id.'] not found';
} else {
$result = 'Success';
}
언급URL : https://stackoverflow.com/questions/9093334/codeigniter-db-delete-returns-true-always
'programing' 카테고리의 다른 글
블레이저에서 상자 바인딩 선택 (0) | 2023.10.16 |
---|---|
도커 컨테이너 내부에서 기기의 로컬 호스트에 연결하려면 어떻게 해야 합니까? (0) | 2023.10.16 |
ES6+에서 두 개의 자바스크립트 객체를 함께 병합하려면 어떻게 해야 합니까? (0) | 2023.10.16 |
Oracle 저장 프로시저에서 웹 서비스 액세스 (0) | 2023.10.16 |
angularjs 및 local스토리지 변경 이벤트 (0) | 2023.10.16 |