CI 묻고 답하기

제목 insert() 관련 문의드립니다.
글쓴이 the_blue 작성시각 2013/08/16 11:46:38
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18503   RSS
안녕하세요.
CI를 시작한지 얼만 안된 초보 개발자 입니다. insert 관련 하여 문의 사항이 드립니다.
하기의 내용대로 insert를 하고 있는데 에러가 발생하여 해결이 안되네요 ㅠㅠ
  
  if( $data['series']['code']){
   if($data['modify_code']['series'] == ''){
    $data['series']['newskey'] = $data['newskey'];
    $this->db->insert('news_series', $data['series']);
   }else{
    $this->db->update('news_series', $data['series'], array('newskey'=>$data['newskey'], 'code'=>$data['modify_code']['series']));
   }
  }

에러내용은 아래와 같습니다.

데이터베이스 오류가 발생하였습니다.

Error Number: 1062

Duplicate entry 'ent-201308131545589' for key 'PRIMARY'

INSERT INTO `news_series` (`code`, `newskey`) VALUES ('ent', '201308131545589')

Filename: /home/atoday/application/models/cms/news/article_model.php

Line Number: 140

insert를 중복으로 사용하지도 않고 insert를 해주는 함수가 혹시 다른데 불릴까 싶어서echo로도 확인을 해봤는데

1번만 실행이 되는걸 확인 했습니다.

1번만 실행을 했는데 DB에 저장이 되고 다시 insert를 하려 해서 발생을 하는거 같은데 이유를 모르겠네요 ㅠㅠ

고수님들 도움 부탁 드립니다.

 다음글 페이지 네이션 설정에 관한 질문입니다 (2)
 이전글 DB 커넥터 질문입니다. (4)

댓글

들국화 / 2013/08/16 13:50:53 / 추천 0
code 가 PK나 unique 인가 보네요.
엔진을 뭐로 쓰실지는 모르겠으나 id 컬럼을 하나 두거나.
서비스 형태를 모르니 구조를 뭐라 말하기 힘들지만 현제 형태를 바꿔야 하는게 아니면 INSERT UPDATE 문을 사용 하세요.
없으면 INSERT.. 있으면 UPDATE 하는 문 입니다.
the_blue / 2013/08/16 14:15:34 / 추천 0

INSERT UPDATE문이 어떤건지점 알수 있을까요?
제가 특정 조건을 줘서 조건에 해당되면insert하고 조건이 다르면 update하게끔 구현을 해놨습니다.
DB구조에서 code 값과 newskey 부분이 uniquer로 되어 있고요.
제가 구현시 DB에 데이터가 없으면 insert를 실행 하게 했는데 저insert할때 저런 에러가 나오더라고요 ㅠㅠ
insert시 에러 나오고 DB를 확인해 보면 insert는 되어 있더라고요;;
 

들국화 / 2013/08/16 14:20:20 / 추천 0
the_blue / 2013/08/16 14:55:38 / 추천 0

ㅠㅠ 정말 감사합니다. INSERT UPDATE 사용후 문제 없어 졌네요
CI 버전에서 제공하는 ON DUPLICATE KEY가 없는게 아쉽네요