CI 묻고 답하기

제목 CI에서 멀티 DB 연결 질문
카테고리 CI 2, 3
글쓴이 경상도곰남 작성시각 2019/06/26 13:47:52
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 12606   RSS

default DB 정보는 세팅하고 default DB에 들어있는 DB 정보 데이터를 가져와서 second  DB를 설정하려고 합니다.

어떻게 해야 할지 모르겠습니다.

database.php 파일에서 쿼리를 사용해 봤는데 오류가 나네요

그리고 database.php 파일에서 session 정보를 확인 할수 있을까요?

고수님들의 조언 부탁드립니다.

database.php 파일

/* 기본 */
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '1234';
$db['default']['database'] = 'my_db';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'cp949';
$db['default']['dbcollat'] = 'Korean_Wansung_CI_AS';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = FALSE;
$db['default']['stricton'] = FALSE;

$host = $_SERVER['HTTP_HOST'];
preg_match('/[^\.]+\.([^\.]{4}|[^\.]{3}|(co|or|pe|ac|ne)\.[^\.]{2}|[^\.]{2})$/i', $host, $matches);
$domain        = $matches[0];
$sub_domain    = ($host!=$domain)?str_replace(".{$domain}", "", $host):"";

$db =&DB();
$query = $db->where('I_COMPANY', $sub_domain)->get('TBL_X_CONPANY_WEB');
$result = $query->row_array();

$db_name = $result['T_DBNAME'];
$company_id = $result['I_COMPANY'];
$company_name = mb_convert_encoding($result['T_COMPANY'],'UTF-8', 'EUC-KR');				
$host_name = $result['T_HOSTNAME'];
$db_user_name = $result['T_DBUSERNAME'];
$db_pass_word = $result['T_DBPASSWORD'];
$company_svr = $result['I_SVR'];



/* ERP DB */
$db['second']['hostname'] = $host_name;
$db['second']['username'] = $db_user_name;
$db['second']['password'] = $db_pass_word;
$db['second']['database'] = $db_name;
$db['second']['dbdriver'] = 'mysql';
$db['second']['dbprefix'] = '';
$db['second']['pconnect'] = FALSE;
$db['second']['db_debug'] = FALSE;
$db['second']['cache_on'] = FALSE;
$db['second']['cachedir'] = '';
$db['second']['char_set'] = 'cp949';
$db['second']['dbcollat'] = 'Korean_Wansung_CI_AS';
$db['second']['swap_pre'] = '';
$db['second']['autoinit'] = FALSE;
$db['second']['stricton'] = FALSE;

 

 다음글 [COOKIE] 쿠키 사용방법에 대한 질문입니다. (1)
 이전글 부모 컨트롤러에서 자식컨트롤러 찾는법 (4)

댓글

변종원(웅파) / 2019/06/26 15:44:59 / 추천 0

database.php 는 순서상 ci의 자원을 사용할 수 없습니다.

호스트에 따라 정해진 호스트명, 유저명 등을 가지고 있을테니 그냥 if 처리하면 됩니다.

if(호스트a)

{

$db['second'['hostname'] = 'a.com';

else 

if(호스트b)

{

$db['second'['hostname'] = 'b.com';

}

경상도곰남 / 2019/06/26 15:53:49 / 추천 0
답변 감사합니다.