TIP게시판

제목 Update문 처리 결과로 affected_rows()을 사용 경우 주의 사항
글쓴이 슘님 작성시각 2014/05/15 10:35:38
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 20804   RSS
혹시 모르실 분들을 위해 글 남겨봅니다.

return $this->db-update();
return affected_rows() > 0;
Model에서 return 로직으로 무엇을 사용할지 위의 두 코드를 가지고 고민고

(참고로 저는 CRUD 요청의 대부분을 Ajax로 처리합니다. (DB는 Mysql)
DB에서 쿼리를 수행한 후 결과 값을 받은 후 View단에서 적절한 처리를 해줍니다.
그래서 이와 같은 선택이 중요했습니다. 물론 Form submit으로 구현한다고 안 중요한 것이 아닙니다.)

예로 게시판에 올린 글을 수정하는 경우를 들어 보겠습니다.
만약 사용자가 아무런 입력을 하지 않고 [수정] 버튼을 누릅니다.
데이터의 변화가 없기 때문에 mysql은 affected_rows()의 리턴값으로 0을 리턴합니다.

즉 affected_rows()의 결과에 따라 처리하는 로직이 다를 경우 잘못된 로직을 수행할 수 있습니다.
그래서 저는
$this->db->update('table');
if ($this->db->affected_rows() > 0) return TRUE;
return FALSE;
보다는
if ($this->db->update('table', $records)) return TRUE;
return FALSE;
을 사용합니다.
 다음글 모든 테이블, 특정 키워드로 치환 소스 (INFORMA... (6)
 이전글 OPEN ICON 사이트

댓글

들국화 / 2014/05/15 18:40:43 / 추천 0
좋은팁 이네요. ^^