티스토리 뷰
확인전 자료
참조 : 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 |