묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
두개의 DB불러오기 질문입니다.
2003.03.06 14:55
두개의 서로다른 계정의 DB를 불러올려고 합니다.
검색을 하였지만 정확한 답을 알지 못하여 이렇게 고수님들의 조언을 듣고자 합니다.
두개의 DB를 모두 접속하나 두번째 DB가 접속을 할경우 첫번째 DB의 연결이 끊어지는
것 같습니다.(마지막 접속 DB는 잘 됩니다)--;;, 세개의 DB를 접속하여도 이와 같이 마지막에 접속한 DB를 제외하고
모두 끊어졌습니다.
이에 고수님들의 조언을 듣고자 합니다.
바쁘신줄 압니다만..
부탁드리겠습니다.ㅜㅜ;
아래의 내용은 테스트로 해 본 내용입니다.
<?
function dberr( $dbconn, $db_name ) {
$errNO = mysql_errno ($dbconn);
$errMSG = mysql_error ($dbconn);
echo("서버의 $db_name 데이터베이스연결에 실패하였습니다!<br>");
echo("에러코드 $errNO : $errMSG<br>");
}
$hohst="localhost";
$user=array("aaa","bbb");
$pass=array("111","222");
$db_name=array("aaa_db","bbb_db");
$tb_name=array("a_tb","b_tb");
for($i=0; $i<count($user); $i++ )
{
$dbconn = mysql_connect($hohst,$user[$i],$pass[$i])
or die("데이터베이스 연결에 실패하였습니다.($user[$i])");
$status = mysql_select_db("$db_name[$i]",$dbconn);
if (!$status) {
dberr( $dbconn, $db_name[$i] );
exit;
}
$result = mysql_query("SELECT count(*) FROM $db_name[$i].$tb_name[$i]");
if (!$result) {
dberr( $dbconn, $db_name[$i] );
exit;
}
$total_record = mysql_result($result,0,0);
echo( "$user[$i] : $pass[$i] : $total_record <br>");
}
$result = mysql_query("SELECT count(*) FROM $db_name[0].$tb_name[0]");
if (!$result) {
dberr( $dbconn, $db_name[2] );
exit;
}
$row = mysql_result($result,0,0);
echo"$total_record";
mysql_close($dbconn);
?>
아래는 위의 결과페이지 입니다.
aaa : 111 : 100
bbb : 222 : 26
서버의 aaa_db 데이터베이스연결에 실패하였습니다!
에러코드 1044 : Access denied for user: 'bbb@localhost' to database 'aaa_db'
검색을 하였지만 정확한 답을 알지 못하여 이렇게 고수님들의 조언을 듣고자 합니다.
두개의 DB를 모두 접속하나 두번째 DB가 접속을 할경우 첫번째 DB의 연결이 끊어지는
것 같습니다.(마지막 접속 DB는 잘 됩니다)--;;, 세개의 DB를 접속하여도 이와 같이 마지막에 접속한 DB를 제외하고
모두 끊어졌습니다.
이에 고수님들의 조언을 듣고자 합니다.
바쁘신줄 압니다만..
부탁드리겠습니다.ㅜㅜ;
아래의 내용은 테스트로 해 본 내용입니다.
<?
function dberr( $dbconn, $db_name ) {
$errNO = mysql_errno ($dbconn);
$errMSG = mysql_error ($dbconn);
echo("서버의 $db_name 데이터베이스연결에 실패하였습니다!<br>");
echo("에러코드 $errNO : $errMSG<br>");
}
$hohst="localhost";
$user=array("aaa","bbb");
$pass=array("111","222");
$db_name=array("aaa_db","bbb_db");
$tb_name=array("a_tb","b_tb");
for($i=0; $i<count($user); $i++ )
{
$dbconn = mysql_connect($hohst,$user[$i],$pass[$i])
or die("데이터베이스 연결에 실패하였습니다.($user[$i])");
$status = mysql_select_db("$db_name[$i]",$dbconn);
if (!$status) {
dberr( $dbconn, $db_name[$i] );
exit;
}
$result = mysql_query("SELECT count(*) FROM $db_name[$i].$tb_name[$i]");
if (!$result) {
dberr( $dbconn, $db_name[$i] );
exit;
}
$total_record = mysql_result($result,0,0);
echo( "$user[$i] : $pass[$i] : $total_record <br>");
}
$result = mysql_query("SELECT count(*) FROM $db_name[0].$tb_name[0]");
if (!$result) {
dberr( $dbconn, $db_name[2] );
exit;
}
$row = mysql_result($result,0,0);
echo"$total_record";
mysql_close($dbconn);
?>
아래는 위의 결과페이지 입니다.
aaa : 111 : 100
bbb : 222 : 26
서버의 aaa_db 데이터베이스연결에 실패하였습니다!
에러코드 1044 : Access denied for user: 'bbb@localhost' to database 'aaa_db'
댓글 2
-
이호한
2003.03.06 16:13
-
신경석
2003.03.07 12:15
이호한 님의 답변 감사드립니다..
그러나 $dbconn을 $dbconn1, $dbconn2로 변경을 하여도 위와 같은 에러가 생깁니다.
아래의 문은 위의 문에서 for문을 빼고 다시 수정하였습니다..
벌써 이틀째 찾고 있어요...--;; 제가 실력이 없어서 그런지..--;;
고수님들의 많은 조언 부탁드립니다..ㅜㅜ;;
<?
function dberr( $dbconn, $db_name ) {
$errNO = mysql_errno ($dbconn);
$errMSG = mysql_error ($dbconn);
echo("서버의 $db_name 데이터베이스연결에 실패하였습니다!<br>");
echo("에러코드 $errNO : $errMSG<br>");
}
$aaa="aaa";
$PASS_aaa="111";
$DB_aaa="DB_a";
$bbb="bbb";
$PASS_bbb="222";
$DB_bbb="DB_b";
$dbconn = mysql_connect("localhost",$aaa,$PASS_aaa) or die("연결 실패.($aaa");
$status = mysql_select_db($DB_aaa,$dbconn);
if (!$status) {
dberr( $dbconn, "$DB_aaa" );
exit;
}
$dbconn = mysql_connect("localhost",$bbb,$PASS_bbb) or die("연결 실패.($bbb)");
$status = mysql_select_db($DB_bbb,$dbconn);
if (!$status) {
dberr( $dbconn, "$DB_bbb" );
exit;
}
$result = mysql_query("SELECT count(*) FROM $DB_aaa.members");
if (!$result) {
dberr( $dbconn, "$DB_aaa " );
exit;
}
$row = mysql_result($result,0,0);
echo"$row";
mysql_close();
?>
아래는 위의 결과입니다. --;;
서버의 DB_a 데이터베이스연결에 실패하였습니다!
에러코드 1044 : Access denied for user: 'DB_b@localhost' to database '+ '+ 'DB_a'
참고로 $dbconn을 $dbconn1, $dbconn2로 변경을 하여도 위와 같은 에러가 생깁니다.
부탁 좀 드릴께요...ㅜㅜ;;
이럴 경우 마지막에 리턴된 Resource ID만 유효할것 같군요.