제목 | Model 단에서 INSERT, UPDATE, DELETE 사용시 질문입니다! | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 도롱뇽이 | 작성시각 | 2017/09/01 10:59:42 |
|
|||
public function board_search2($h_seq, $h_user_id) { /* 게시물 조회수 update 처리 로직 */
$this->db->set("VIEW_CNT",VIEW_CNT+1);
$this->db->where("SEQ", $h_seq);
$this->db->where("USER_ID", $h_user_id);
$this->db->update("BOARD_TB");
/* 게시물 관련 내용 select 처리 */
$qry = "SELECT SEQ, TITLE, CONTENTS, USER_ID, VIEW_CNT FROM BOARD_TB WHERE SEQ='".$h_seq."' AND USER_ID='".$h_user_id."'";
return $this->db->query($qry)->result_array();
}
일단, board_search2() 모델단에 적용해놓은 update + select 처리 로직입니다! 저기서 update 로직을 쌩짜 쿼리로 풀면
UPDATE BOARD_TB SET VIEW_CNT=VIEW_CNT+1 WHERE SEQ='$h_seq' AND USER_ID='$h_user_id' 가 되는건데..
여기서 CI에서 제공하는 $this->db->set 이나 $this->db->where 를 사용하지않고 쿼리를 제가 직접 입력하여 자체적으로 쿼리를 돌리고 싶습니다.. 시도해본건 $query = "UPDATE BOARD_TB SET VIEW_CNT=VIEW_CNT+1 WHERE SEQ='$h_seq' AND USER_ID='$h_user_id'"; $this->db->update($query); 입니다만.. 작동방식이 잘못된건지
A Database Error Occurred You must use the "set" method to update an entry. Filename: C:/APM_Setup/htdocs/system/database/DB_query_builder.php Line Number: 1848
이러한 에러가 나버리네요 ㅠㅠ 아무래도 CI 제공 함수사용에 불편함을 느껴서 그런지.. 쿼리문 작성을 하는데 있어 직접 작성이 좀 더 가독성이 좋다고 판단되어 쿼리문을 직접 작성하고 그걸통해 insert, update, delete 처리를 해버리고 싶습니다.. 제가 시도한 방법이 잘못된거라면 따로 시도 가능한 방법이 있는건지 궁금합니다..!
더불어, 사실 이런 질문을 올리게 된 이유는 $this->db->set("VIEW_CNT","VIEW_CNT+1"); 구문을 이렇게 작성하여 사용하니 VIEW_CNT 를 STRING 그대로 VIEW_CNT+1 로 쳐버리더군요.. 그래서 $this->db->set("VIEW_CNT",VIEW_CNT+1); 구문을 이렇게 쌍따옴표를 없애보니.. VIEW_CNT 항목을 1로 UPDATE 치기까진 하는데..
/* 게시물 관련 내용 select 처리 */
$qry = "SELECT SEQ, TITLE, CONTENTS, USER_ID, VIEW_CNT FROM BOARD_TB WHERE SEQ='".$h_seq."' AND USER_ID='".$h_user_id."'";
return $this->db->query($qry)->result_array();
이렇게 작성해놓은 SELECT 문이 아래 에러메세지를 뿌리면서 정상작동하지 않습니다.. ㅠ
A PHP Error was encountered Severity: Notice Message: Use of undefined constant VIEW_CNT - assumed 'VIEW_CNT' Filename: models/Cafe_model.php Line Number: 69 Backtrace: File: C:\APM_Setup\htdocs\application\models\Cafe_model.phpLine: 69Function: _error_handler File: C:\APM_Setup\htdocs\application\controllers\Music_Cafe.phpLine: 98Function: board_search2 File: C:\APM_Setup\htdocs\index.phpLine: 315Function: require_once
간단히 요약하여 질문 드립니다 ㅠㅠ 1. 직접 작성한 쿼리문으로 UPDATE, INSERT, DELETE 문을 처리할 수 있는 방법이 있는지.. 2. $this->db->set() / $this->db->where() / $this->db->update() 처리를 할 때 $this->db->set()이나 $this->db->where() 구문에 AA = AA+1 같은 쿼리문을 셋팅할 수 있는 방법이 따로 있는지 궁금합니다.. |
|||
다음글 | 페이지네이션 마지막 페이지 질문입니다. (3) | ||
이전글 | URL 관련 문의 (9) | ||
한대승(불의회상)
/
2017/09/01 12:48:01 /
추천
0
|
도롱뇽이
/
2017/09/01 13:10:09 /
추천
0
대승님 댓글 감사합니다 ㅠㅠ! 한번 해보도록 하겠습니다!! |
1. $this->db->query() 를 사용하세요.
2. $this->db->set('a', 'a+1', false) , $this->db->where('a', 'a+1', false) 를 사용하세요.
메뉴얼에 보시면 명시되어 있습니다.