티스토리 뷰

Language/PHP

2개 DB 연결

MiniNeko 2015. 11. 29. 04:05

확인전 자료
참조 : http://www.zetswing.com/bbs/board.php?bo_table=PHP_LEC&wr_id=18&page=3


보통 DB와 연동을 할때는 하나의 DATABASE와 연결을 하지만 때로 DB서버의 여러 DATABASE

와 연동을 하거나 여러 DB서버의 DATABASE와 연동를 할때가 있습니다. 이럴때 주의사항을 애기합니다.

 

DB서버내에서 한개의 DATABASE와 연결하기

 

/*---------------------- 데이타베이스 설정 ---------------------------------------*/
// 초기세팅시 아래 항목을 각각 설정해 주십시오.
$host="localhost";           // 데이타베이스 서버 주소 (같은서버일경우 : localhost)
$user="ysaraha";        // 데이타베이스 접속 아이디
$passwd="543543";           // 데이타베이스 접속 비밀번호
$dataname="ysaraha";       // 데이타베이스 명
/*--------------------------각종 설정 내용 ----------------------------------------*/

/*------------------------데이타베이스 접속, 함수 ---------------------------------*/
$con=@mysql_connect($host,$user,$passwd,true);  //데이타베이스 접속
@mysql_select_db($dataname,$con) or die("db connect err");

 

function Mysql_DBquery($qry)
{
 global $con;
 
 $res=@mysql_query($qry,$con) or die("<b>Err msg :</b> ".mysql_error()." , <b>Qry Err</b>. : $qry");
 //MYSQL_DBquery()함수가 에러날시에 mysql_error()함수 에러메세지와 쿼리를 출력합니다. 
 return $res;
}

 

같은 DB서버내에서 두개상의 DATABASE와 연결하기

 

/*---------------------- 데이타베이스 설정 ---------------------------------------*/
// 초기세팅시 아래 항목을 각각 설정해 주십시오.
$host="localhost";           // 데이타베이스 서버 주소 (같은서버일경우 : localhost)
$user="ysaraha";        // 데이타베이스 접속 아이디
$passwd="543543";           // 데이타베이스 접속 비밀번호
$dataname="ysaraha";       // 데이타베이스 명
/*--------------------------각종 설정 내용 ----------------------------------------*/

// 초기세팅시 아래 항목을 각각 설정해 주십시오.
$host1="localhost";           // 데이타베이스 서버 주소 (같은서버일경우 : localhost)
$user1="ysaraha";        // 데이타베이스 접속 아이디
$passwd1="543543";           // 데이타베이스 접속 비밀번호
$dataname1="test";       // 데이타베이스 명
/*--------------------------각종 설정 내용 ----------------------------------------*/

 

/*------------------------데이타베이스 접속, 함수 ---------------------------------*/
$con=@mysql_connect($host,$user,$passwd,true);  //데이타베이스 접속
@mysql_select_db($dataname,$con) or die("db connect err");

/*------------------------데이타베이스 접속, 함수 ---------------------------------*/
$con1=@mysql_connect($host1,$user1,$passwd1,true);  //데이타베이스 접속
@mysql_select_db($dataname1,$con1) or die("db connect err");

 

function Mysql_DBquery1($qry)
{
 global $con1;
 
 $res=@mysql_query($qry,$con1) or die("<b>Err msg :</b> ".mysql_error()." , <b>Qry Err</b>. : $qry");
 //MYSQL_DBquery()함수가 에러날시에 mysql_error()함수 에러메세지와 쿼리를 출력합니다. 
 return $res;
}


function Mysql_DBquery($qry)
{
 global $con;
 
 $res=@mysql_query($qry,$con) or die("<b>Err msg :</b> ".mysql_error()." , <b>Qry Err</b>. : $qry");
 //MYSQL_DBquery()함수가 에러날시에 mysql_error()함수 에러메세지와 쿼리를 출력합니다. 
 return $res;
}

 

서로다른 DB서버내에서 DATABASE와 연결하기

 

/*---------------------- 데이타베이스 설정 ---------------------------------------*/
// 초기세팅시 아래 항목을 각각 설정해 주십시오.
$host="localhost";           // 데이타베이스 서버 주소 (같은서버일경우 : localhost)
$user="ysaraha";        // 데이타베이스 접속 아이디
$passwd="543543";           // 데이타베이스 접속 비밀번호
$dataname="ysaraha";       // 데이타베이스 명
/*--------------------------각종 설정 내용 ----------------------------------------*/

// 초기세팅시 아래 항목을 각각 설정해 주십시오.
$host1="210.205.6.84";           // 데이타베이스 서버 주소 (같은서버일경우 : localhost)
$user1="leejunsik";        // 데이타베이스 접속 아이디
$passwd1="leejunsik";           // 데이타베이스 접속 비밀번호
$dataname1="leejunsik";       // 데이타베이스 명
/*--------------------------각종 설정 내용 ----------------------------------------*/

 

/*------------------------데이타베이스 접속, 함수 ---------------------------------*/
$con=@mysql_connect($host,$user,$passwd,true);  //데이타베이스 접속
@mysql_select_db($dataname,$con) or die("db connect err");

/*------------------------데이타베이스 접속, 함수 ---------------------------------*/
$con1=@mysql_connect($host1,$user1,$passwd1,true);  //데이타베이스 접속
@mysql_select_db($dataname1,$con1) or die("db connect err");

 

function Mysql_DBquery1($qry)
{
 global $con1;
 
 $res=@mysql_query($qry,$con1) or die("<b>Err msg :</b> ".mysql_error()." , <b>Qry Err</b>. : $qry");
 //MYSQL_DBquery()함수가 에러날시에 mysql_error()함수 에러메세지와 쿼리를 출력합니다. 
 return $res;
}


function Mysql_DBquery($qry)
{
 global $con;
 
 $res=@mysql_query($qry,$con) or die("<b>Err msg :</b> ".mysql_error()." , <b>Qry Err</b>. : $qry");
 //MYSQL_DBquery()함수가 에러날시에 mysql_error()함수 에러메세지와 쿼리를 출력합니다. 
 return $res;
}

 

주의할점및 해결책

 

보통 여러 db와 연결할때

$con1=@mysql_connect($host1,$user1,$passwd1);

$con2=@mysql_connect($host2,$user2,$passwd2);

$con3=@mysql_connect($host3,$user3,$passwd3);

이렇게 쓰면 $con1만 제대로 연결되고 $con2와 $con3이 $con1을 가리켜 잘못된 실행이 됩니다.

 

이잘못된 연결로 db를 선택하게 되면

@mysql_select_db($dataname1,$con1)

@mysql_select_db($dataname2,$con2)

@mysql_select_db($dataname3,$con3)

이렇게 하고 db와 연동을 하게되면 모든 db선택이

@mysql_select_db($dataname3,$con3)에 맞추어져서 모든 쿼리가 

@mysql_select_db($dataname3,$con3)의 database안에서 이루어집니다.

 

$con1=@mysql_connect($host1,$user1,$passwd1);

을 

$con1=@mysql_connect($host1,$user1,$passwd1,1);



$con1=@mysql_connect($host1,$user1,$passwd1,true);

로 수정하면 제대로 다중 database 연동이 됩니다.

'Language > PHP' 카테고리의 다른 글

switch - 스위치  (0) 2015.11.29
RSS 읽는 괜찮은 함수  (0) 2015.11.29
정규식 - 자주사용하는  (0) 2015.11.29
mysql_query 의 두가지 문법  (0) 2015.11.29
세션, 쿠키 정리  (0) 2015.11.29
Total
Today
Yesterday
최근에 올라온 글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30