다중db질문입니다.

다중db질문입니다.

QA

다중db질문입니다.

답변 3

본문

현재 그누보드와 카페24에서 제공하는 db

그리고 외부 db를 이용하고나 합니다.

 

내부db에서는 회원가입등 로그인 절차만 밟고

 

외부db에서 게시판에 뿌릴 정보를 다듬어 줄 예정입니다..

 

문제는 다중db연동입니다.

 

common.php에  

http://88240.tistory.com/entry/PHP-%EB%8B%A4%EC%A4%91-DB-%EC%97%B0%EA%B2%B0-%EC%8B%9C-SELECT%EB%AC%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0

이런식으로 해주면 끝나는건지..

 

그누보드 자체에서 또 수정해줄 곳이 있는지..

만약 수정해야한다면 어딜 해야하는지..

게시물을 가져와 list ,view 해줄 예정입니다..

 

신입인 저한텐 불가능할까요?

 

 

아니면 그냥..카페24에서 제공하는 db말고

외부db로 연결하려면

카페24에서 수정하나요

그누보드에 계정정보 입력하나요?

 

이 질문에 댓글 쓰기 :

답변 3


/common.php
    $connect_db = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD) or die('MySQL Connect Error!!!');
    $select_db  = sql_select_db(G5_MYSQL_DB, $connect_db) or die('MySQL DB Error!!!');

    // mysql connect resource $g5 배열에 저장 - 명랑폐인님 제안
    $g5['connect_db'] = $connect_db;

$g5['connect_db_in'] = $connect_db;

    $connect_db_out = sql_connect(외부 접속) or die('MySQL Connect Error!!!');
    $select_db_out  = sql_select_db(db선택) or die('MySQL DB Error!!!');

$g5['connect_db_out'] = $connect_db_out;


대충 이런 구조의 db접속을 한다고 할 때


$g5['connect_db'] 의 값을 필요에 따라서 내부 리소스인 $g5['connect_db_in'] 나  외부 리소스인 $g5['connect_db_out'] 변경해주면 쉽게 될 것 같습니다.

리스트의 원격  db를 참조하는 부분의 시작점에
$g5['connect_db'] = 외부 리소스를 지정 후 더이상 
$g5['connect_db'] = 내부 리소스로 돌려 놓으면 될 것 같습니다.

일단 답변글은 제가 만약에 그런 상황에 놓였다면 어떻게 해결 할 것인가에 초점을 맞춘거라

실질적인 세부 작업은 

db 에따라 달라 질 듯 합니다.

만약 외부에서 사용하는 부분은 단지 그 게시판 g5_wirte_out 이라고 할 때

외부에서 참조해야 할 부분들은 g5_board_file 정도 일 것 같구요.

내부적으로 out이라는 게시판을 생성하고 필요한 설정을 미리 정의해 놓을 듯합니다.

그리고 /bbs/list.php 에서 

$bo_table == 'out' 일 경우 

db컨넥션 변경 리소스를 할당하여 외부 목록을 출력시키고 마무리되면

컨넥션을 내부로 돌려 놓을 듯 합니다.

 

이런 구조적인 변경을 하게되면 앞으로 그누보드 업데이트 시마다 패치부분만 소스 변경 및 적용을 해야하므로 사실 바람직한 것은 아니라고 봅니다.

 

질문의 답변과는 다르게

외부 db를 클론으로 내부에 업데이트 하시는게 운영상 좋을 듯 합니다.

 

음..
일단
common.php 132라인부터 부면서

    //DB추가
    $g5['connect_db_in'] = $connect_db;
   
    $connect_db_out = sql_connect("호스트", "db아이디", "비번") or die('MySQL Connect Error!!!');
    $select_db_out = sql_select_db("db명", $connect_db_out) or die('MySQL Connect Error!!!');
   
    $g5['connect_db_out'] = $connect_db_out;

이런식으로 추가를 하고..

list.php에 가서 만약 제가 만들어둔 게시판의 테이블명이 out이라 한다면..
list.php 에 어느부분에서 조건을 주나요?
'out'이라는 게시판에서 외부db를 쓰겠다고 신호?를 보내야 하지 않나요?

외부db에서 게시글을 가져와서 보여주기만 하는 정도로만 할 예정이라..
일단 연동이라도 해서 뿌려주고 싶은데..
(죄송합니다. php를 처음 시작하는 신입이라 질문이 너무 많네요..)

 

아래처럼 간단한 방법으로 목록 및 읽기가 가능 한 것 같아요.

하지만 세부적인 자잘한 문제들은 어떻게 발생될지 모르겠군요.

 

/common.php

140라인
$connect_db = sql_connect(G5_MYSQL_HOST, G5_MYSQL_USER, G5_MYSQL_PASSWORD) or die('MySQL Connect Error!!!');
    $select_db  = sql_select_db(G5_MYSQL_DB, $connect_db) or die('MySQL DB Error!!!');



    $connect_db_out = sql_connect("외부서버","유저","패스") or die('MySQL Connect Error!!!');
    $select_db_out  = sql_select_db("jsstudy", $connect_db_out) or die('MySQL DB Error!!!');



    // mysql connect resource $g5 배열에 저장 - 명랑폐인님 제안
    $g5['connect_db'] = $connect_db;

$g5['connect_db_in'] = $connect_db;
$g5['connect_db_out'] = $connect_db_out;


--------------------------------------
/common.php
470라인쯤
       if (isset($wr_id) && $wr_id){
if($bo_table == 'javascript') $g5['connect_db'] = $g5['connect_db_out'];
            $write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
$g5['connect_db'] = $g5['connect_db_in'];
}

---------------------------------------
/bbs/list.php
1라인
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if($bo_table == 'javascript')
$g5['connect_db'] = $g5['connect_db_out'];

--------------------------------------
/bbs/list.php
끝라인
$g5['connect_db'] = $g5['connect_db_in'];
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 40
© SIRSOFT
현재 페이지 제일 처음으로