제목 | insert_id 질문 좀 드릴게요 | ||
---|---|---|---|
글쓴이 | implemental | 작성시각 | 2014/10/06 17:21:48 |
|
|||
안녕하세요. 프로젝트 도중 어쩔 수 없이 회원 가입을 하기 위해서는 3개의 테이블에 insert해야 되는 상황이라서 $this->db->insert_id(); 를 이용하는 중입니다. 먼저 table1에 pk이자 ai 값인 user_id라는 컬럼이 있다 가정을 하고 아래와 같이 했는데요 $data1 = array( 'user_id' => $this->input->post('user_id'), //pk, ai ...생략 ); $this->DB1->insert('table1', $data1); $data2 = array( 'user_id' => $this->DB1->insert_id(), //pk, ai ...생략 ); $this->DB1->insert('table2', $data2); $data3 = array( 'table3_id' => $this->input->post('table3_id"); //pk, ai ...생략 'xx_member_id' => $this->DB1->insert_id(), //pk, ai 아님 ); $this->DB1->insert('table3', $data3); (table2의 pk도 user_id입니다. 하지만 table3의 pk는 다른 컬럼입니다.) table1과 2의 user_id라는 컬럼은 동일한 컬럼명으로 되어있고 table3은 다른 이름으로 되어있습니다. $this->output->enable_profiler(TRUE); 찍어보니까 table2에는 정상적으로 insert_id()가 동작을 하는데, table3에는 0이 찍히더군요.. insert_id를 2개이상 사용하려면 어떻게 하면 될까요? |
|||
다음글 | codeigniter 트랜잭션에서 롤백 시 오류가 되는... (2) | ||
이전글 | ajax 질문좀 드리겠습니다. (6) | ||
변종원(웅파)
/
2014/10/06 17:51:30 /
추천
0
실제 소스는 아래와 같이 되어 있는데 안되려면 다 안되야 하고 되려면 다 되어야 합니다.
|
implemental
/
2014/10/07 09:47:38 /
추천
0
@웅파님 / 저도 퇴근하고 머리 식히면서 보니 말씀대로 AI가 적용되야 값을 가져오네요.
일단 꼼수로 해결을 했습니다. table3만 다르게 하는 이유는 웹이 아닌 프로그램에서 그렇게 사용을 하고 있어 어쩔 수 없이 이렇게 해야 되서 질문 올렸던거에요 :D 꼼수는 아래와 같이 $data1 먼저 insert 하고 마지막에 $data2, $data3 을 같이 해주니 정상적으로 동작을 하네요 ^^; $data1 = array( 'user_id' => $this->input->post('user_id'), //pk, ai ...생략 ); $this->DB1->insert('table1', $data1); $data2 = array( 'user_id' => $this->DB1->insert_id(), //pk, ai ...생략 ); $data3 = array( 'table3_id' => $this->input->post('table3_id"); //pk, ai ...생략 'xx_member_id' => $this->DB1->insert_id(), //pk, ai 아님 ); $this->DB1->insert('table2', $data2); $this->DB1->insert('table3', $data3); |