제목 | CI table insert. update 성공 후 데이터 실종 | ||
---|---|---|---|
카테고리 | CIBOARD | ||
글쓴이 | 거부기 | 작성시각 | 2019/08/13 17:51:29 |
|
|||
안녕하세요. 찾다 찾다 도저히 원하는 답을 알수가 없어 이렇게 직접 문의드립니다. $this->db->insert() 및 $this->db->update() 함수를 이용하여 데이터를 삽입 및 수정을 시도하였습니다. CI에서는 정상 결과값을 리턴받았는데, 막상 테이블에서는 값이 추가되거나 수정되지 않습니다. last_query 로 쿼리를 뽑아서 콘솔에서 실행하면 정상적으로 삽입 및 수정이 되는데 이상하게 CI에서 실행하면 정상동작 후인데도 데이터가 없네요. 신기한것은 insert의 경우 자동 증가 field 로 넘버링을 하는데 CI에서 실행 후 다른 프로세스에서 데이터가 삽입되면 손실된 데이터 갯수만큼 넘버링 추가되어 있습니다. 아마도 update 도 같은 이유인것 같은데요.. 트랜잭션도 걸어보고 쿼리 실행 전 쿼리리셋도 해보고 해봤는데요. 계속 같은 현상이 발생되네요..;;; 왜 이런건지 도저히 모르겠네요..ㅜㅜ 아무쪼록 고수님들의 답변 부탁드리겠습니다. 감사합니다.
|
|||
다음글 | join에서 테이블 alias를 사용중인데, 동일한 필... (3) | ||
이전글 | pdo 쿼리빌더를 사용해야 할지 고민입니다. (6) | ||
태영쓰
/
2019/08/13 18:58:44 /
추천
0
insert의 경우 혹시 해당하는 컬럼이 유니크키가 설정되어있지 않나요? insert 후 $this->db->insert_id()또한 정상 반환되나요?
|
변종원(웅파)
/
2019/08/13 22:12:29 /
추천
0
mysql 설정이 auto commit 이 아닐 수도 있습니다.
|
거부기
/
2019/08/14 09:38:49 /
추천
0
태영쓰) 위에서 질문드린대로 last_query로 쿼리를 스트링으로 뽑아 콘솔에서 직접 쿼리를 날리면 정상적으로 insert 및 update 가 됩니다. (동일 테이블을 사용하는 다른 로직에서는 잘 되거든요.;;) insert_id 값도 잘 나옵니다ㅜㅜ |
거부기
/
2019/08/14 09:40:08 /
추천
0
웅파) 해당 테이블 외에 다른 테이블에서는 비슷한 로직에서 다들 정상적으로 돌아가는데요.. mysql 설정 문제라면 다른 테이블도 같은 현상이 발생되어야 하지 않나요? 그래도 혹시 몰라 확인해 봤는데. auto commit은 1로 설정이 되어 있네요..^^;; |
한대승(불의회상)
/
2019/08/14 12:15:19 /
추천
0
@거부기 코드의 일부를 보여주세요.
|
거부기
/
2019/08/14 13:26:24 /
추천
0
@한대승 소스는 별거 없는데요.. 아래와 같습니다. public function insert_apiLog($city, $provider, $api_type, $request_url) $param = array( $this->db->set($param); if (empty($result)) { 위 함수는 foreach 로 4번이 도는데요.. 첫번째 루프인 api_type 이 문화는 정상으로 insert 되는데, 두번쨰 축제부터 마지막 문화재까지는 insert 되지가 않네요. ㅜㅜ $param 을 로그 찍어보면 4번 나오구요. insert_id 값도 네번 나옵니다. 리턴값이 비어있지 않아 success 로 처리가 완료되는 모델인데. 막상 테이블에는 데이터가 없습니다. |
변종원(웅파)
/
2019/08/14 16:25:20 /
추천
0
로직 다른 곳에서 $this->db 가 선언되지 않았는지도 살펴보세요.
|