programing

codeigniter db->delete () returns always true?

subpage 2023. 10. 16. 21:52
반응형

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

반응형