CI 묻고 답하기

제목 데이터베이스 dsn 연결과 active_group 비활성화 방법좀 여쭈어 보겠습니다
글쓴이 kswjjg 작성시각 2014/11/07 12:56:48
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 17899   RSS
CI 사용한지 얼마 안되는 사람입니다..ㅠ
$this->load->database('mysql://유저ID:비밀번호*@IP주소:포트/데이터베이스');
dsn으로 연결해야 할 부분이 생겨서 이렇게 연결을 시도하는데 연결이 실패해서 그런건지
database active_group 에 활성화 되어있는 default 데이터베이스로 연결되더군요..
그래서 active_group = '';로 바꾸어 보았지만 

You have specified an invalid database connection group.
메세지와 함께 넘어가질 않네요 active_group이 없을시에는..
dsn값이 맞게 들어가있는 건지, active_group 값을 어떻게 없앨수 있는지 여쭈어봅니다ㅠ
 다음글 변수 값이 없는 상태로 받을 때 에러메시지 제거방법이 ... (3)
 이전글 ie 브라우저에서 ppt, pdf 파일 다운로드 시 다... (1)

댓글

변종원(웅파) / 2014/11/07 14:24:41 / 추천 0
매뉴얼에서 여러개의 데이터베이스 연결에 대한 부분 참고하세요.
dns연결할 필요없이 여러개 선언해놓고 원할때 연결하여 쓸 수 있습니다.
kswjjg / 2014/11/07 14:36:33 / 추천 0
데이터베이스 양이 워낙 많아 체크해야 될 부분이 있어서.. 기존 코딩 유지하면서 하려면 dns연결이 필요할것같아서요 ㅠㅠ
한대승(불의회상) / 2014/11/07 14:44:03 / 추천 0
kswjjg// 프레임워크 사용하면서 어리둥절 하죠 ^^
메뉴얼에 기술된대로 하는데 접속이 default로만 되니까요.

원인은 이미 $this->db에 db 연결이 되어 있어서 입니다.
이미 db 객체가 연결되어 있다면 다시 연결을 하지 않는거죠.

해결 방법은 열려 있는 DB를 닫아주면 됩니다.
아래 처럼 해보세요.
 
$this->db->close();
$thsi->load->database($dns);


 
kswjjg / 2014/11/07 14:56:41 / 추천 0
불의회상// 감사합니다^^
하지만 어째선지 아직도 default로 가네요 ㅠㅠ
$dsn = mysql://id:password@IP:PORT/DB;
$this->db->close();
$this->load->database($dsn);
로 해줬는데 말이죠 ..


dsn이 아닌
$this->load->database('다른db명',TRUE);일때는 정상적으로 db연결이 됩니다 ㅠㅠ
 
kswjjg / 2014/11/07 17:12:29 / 추천 0
$db2 = $this->load->database($dsn,TRUE);
$query = $db2->query($sql);

모델에서 이런식으로 해줘야 되는군요 ㅠㅠ 모르고 있었네요..

$this->load->database($dsn,TRUE);
$query = $this->db->query($sql); 이런식으로 쓰고 있었거든요.. ㅠ.ㅠ
dsn으로 하려니 좀 불편한 점이 있긴있군요 ㅠㅠ
한대승(불의회상) / 2014/11/07 17:25:42 / 추천 0
방법을 조금 바꾸면 편해 집니다. ^^
 
$this->db->close();
$this->db = $this->load->database($dsn,TRUE);
kswjjg / 2014/11/07 17:30:19 / 추천 0
오오~ 그렇군요 감사합니다^^