제목 | 업데이트 쿼리를 작성하는도중 몇시간째 헤메고 있는것이 있어 질문드립니다 ㅠ | ||||
---|---|---|---|---|---|
글쓴이 | 마카오최 | 작성시각 | 2015/11/27 23:55:01 | ||
|
|||||
안녕하세요. 어떤 필드값 = 어떤필드값 +1 이게 제 질문의 핵심이라고 보시면될것 같습니다... UPDATE BOARD_TEST SET list_no = list_no+1 WHERE list_no >= 1 AND o_idx = 27 일반적으로 이렇게 사용하던 쿼리를 CI 쿼리빌더에 맞춰 아래와 같이 작성을 하였습니다. ** 테스트하려고 헬퍼로 따로 빼서 넘버와 테이블네임들을 고정시켰습니다. ** function test_update() { $CI=& get_instance(); $o_idx = 27; $list_no = 1; $up = array( 'list_no' => list_no+1 //'list_no' => 'list_no+1' // 이게 맞나 싶어 이렇게도 해보았습니다.. ); $CI->db->where( array( 'list_no >=', $list_no, 'o_idx'=>$o_idx ) ); $result = $CI->db->update( 'BOARD_TEST', $up ); return $result; } ci 프로파일러로 결과를 체크해보니..쿼리는 true가 떨어지긴 하는데.. 값들은 모두 1이 들어가고 결과가 아래와같이 나옵니다..
괴상하게 작성되네요... 메뉴얼을 계속봐도봐도 어느부분을고쳐야할지 모르겠습니다...ㅠㅜ |
|||||
다음글 | CI3 에 Ratchat 를 적용하고 싶은데, 또는 W... (4) | ||||
이전글 | 파일업로드 시 아이폰에서 응답이 안됩니다... (2) | ||||
taegon
/
2015/11/28 15:21:13 /
추천
0
|
마카오최
/
2015/11/30 22:55:32 /
추천
0
taegon 님 답변 감사합니다.^^
알려주신대로 적용하니 잘 됩니다~. set을 한번더 명시해주고 FALSE를 선언하는것 ! 간단하지만 코드도 깔끔하고 직관적이네요.. 뒷부분에 FALSE를 주는것을 메뉴얼에서 본적은 있었는데 별로 중요한것 같지 않아 흘려봤는데 그게 또 결정적이었네요 ㅠ.. 앞으로 업데이트쿼리는 저렇게 3단계의 형태로 하는것을 기본으로 생각하고 해야겠습니다.. |
set에 FALSE 넣어주는 것은 메뉴얼에서 찾아보시면 왜 그렇게 하는지 아실 수 있으실 겁니다.
$CI->db->set('list_no', 'list_no + 1', FALSE);
$CI->db->where(array('list_no >=' => $list_no, 'o_idx' => $o_idx);
$CI->db->update('BOARD_TEST');