테스트 사이트 - 개발 중인 베타 버전입니다

테이블 복제 채택완료

bde6891 10년 전 조회 5,829

안녕하세요,

이전에도 외부db연동건 때문에 질문올렸는데 죄송합니다.

 

외부db를 연동해서 뿌려줄 때에는 이런저런 오류때문에

다들 내부db로 복제해서 쓴느걸 권장하시는데..

 

1. 해당게시판에서 외부db연동

2. 외부db table select

3. $result에 담은 후 외부db연동 해제

4. 내부db연동

5. 내부db에 $result insert

 

이런 흐름이 맞나요? 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
10년 전

제일 좋은 방법은 외부 DB를 연결하여 프로그램을 만드는 방법이 좋아요

 

그런데 이 부분을 못하시기 때문에 차선책인 db를 복사 한 후에 작업 하시는 것을 추천하는 것이에요

 

 

저번에 작업 방법을 댓글로 남겼는데요.

 

다시 정리 해드릴게요

 

board.php나 tail.php 안에 아이프레임으로 파일 한개 만드세요.

 

그 파일은 사이트 접속시 매번 실행 될 거에요.

 

아무런 조건이 없으니깐요.   외부 DB에서 내부 DB로 데이터만 복사하닌까요.

 

 

1. 아이프레임을 만든다.

2. 대략적인 코딩

2.1 내부 테이블에서 외부 테이블에 시퀀스를 알아낸다.

시퀀스를 저장해야지 외부 테이블 어디까지 저장되었는지 알 수 있죠.

 select max(wr_id) as wr_id from 내부 테이블 

2.2 외부 DB 조회

select * from 외부 테이블 where wr_id > '외부시퀀스' order by wr_id asc  

2.3 조회된 데이터를 내부 테이블에 넣는다.

while( $f = sql_fetch_array( $res ) ){

insert 쿼리   <== 이곳에서 중요한 것은 외부 테이블 시퀀스 번호를 꼭 저장해야 해요. 그래야 다음에 그 번호를 초과한 데이터 부터 복사할 수있어요 

}

 

이렇게 하면 내부 테이블로 시도 때도 없이 접속하여 데이터를 복사하게 될 것이고요.

 

그럼.. 그누보드 board.php를 순정 상태에서 사용할 수 있어요

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

b
bde6891
10년 전
그럼 이전처럼 list.skiin에 if로 db연동부분 따로 작성해주지 않아도 되나요?
board.php에 db연동부분은 어떻게 해결하나요?
db복제하려면 내부,외부 db가 둘 다 연결되어 있어야 하지 않나요?
잘살아보자
10년 전
당연 dbcon을 두개 만들어야죠.
내부, 외부

mysqli를 이용하면 편해요.

mysql과 비슷한 방법으로 연결되고요.
이것은 네이버에 검색 해보세요.

dbcon 할 줄 알고 select 할 줄 알고 내부, 외부 테이블 구조가 같으니
dbcon만 성공하면 쉽게 풀리죠.

단,
이경우는 그누보드 라이브러리 못 사용해요.

mysqli_query, mysqli_fetch_array를 검색해보세요.

mysql_query, mysql_fetch_array와 같아요
mysql_query => 그누보드 sql_query
mysql_fetch_array => 그누보드 sql_fetch_array
에요.
b
bde6891
10년 전
아 그런식으로 db를 두개가 연결 가능한가요?
이전에 그누보드에서는 다중db불가능하다고 본거 같아서..그렇군요 찾아봐야겠어요!

댓글을 작성하려면 로그인이 필요합니다.

10년 전

 

결국 외부테이블을 내부서버에 복사해서 사용한다는 것인가요?(나중에 실력이 좀 붙어서 보면 왜 이런짓을 했을까 할 겁니다)

질문의 내용 그대로만 하면 됩니다. 정확한 순서입니다

그런데 복사할 필요없이 외부, 내부 왔다갔다하면서 테이블을 열고 쓰고 하는 방법도 똑 같습니다

다만

4. 내부db연동 --> 이것은 connect를 다시 하는 것이 아니라 $g5['connect_db'] 값만 변경해주면 됩니다

 -- 디비해제 즉 mysql_close()는 하지않고 그냥 둡니다

 

 이 작업을 하는 방법이 예전 답변 어디에 설명이 있었을텐데...

 이렇게 하는 이유는 그누보드 자체함수를 모두 그대로 사용할 수 있게 하는 것입니다

 에를들어 외부 디비에 작업할때도 $result=sql_query("select~~~), sql_query('update~~) 처럼 내부 디비 작업과 동일하게 하면 된다는 말입니다

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

R
Rido
10년 전
common.php 파일 열어보니 균이님이 이야기 하신게 제일 좋은 대인인거 같네요
실제적인 common.php파일에 하나의 function을 제작하고 그 function에다가
connect시킬 디비를 지정하게 하고 query를 날리기 이전에 function호출을 해주면 될듯
하네요...
b
bde6891
10년 전
현재는 내부db연결했다가 외부db연결했다가~ 하고 잇는데..
db를 동시에 두개를 연동해야 복제할 수 있는 거 아닌가요?
그렇다면 외부db연결 후 $result에 담은 후 내부db연결하면..$result에 담긴 내용은 없어지지 않는다 이건가여?

그럼 대부분 db복제보단 AJAX가 훨씬 간단하다는거군요..

댓글을 작성하려면 로그인이 필요합니다.

10년 전

xml이나 json 같은 거 필요 없고용,.

 

그냥 외부 db connect 하나 더 만들어서 사용하시면 됩니다.

 

연동 방법은 어떻게 하실지 정확한 설계를 하신 다음에 정하시면 됩니다.

 

질문글을 읽어본 결과 아직 비전공자이거나 초급이신 것 같으신데, 혼자 감당하기는 어려울 경우

경력직의 도움을 받아보세요. 간단한 것인데 아직 경험이 부족하여 헤매시는 것 같습니다. 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

b
bde6891
10년 전
ㅎㅎ 전공자이긴 한데.. php전공도 아니고 신입이라..무 ㅓ거의 비전공자라고 보면 맞겠네요 'ㅁ'!

댓글을 작성하려면 로그인이 필요합니다.

10년 전

음... 전에 XML이나 JSON으로 데이터를 받아서 보여주는 게시판을 말씀드렸는데, 그 내용이 AJAX와 동일한 내용이나 마찬가지 입니다.

AJAX가 jquery 를 쓰면 어렵지 않은건 사실이나 전혀 모르는 상태에서 개념부터 잡고 들어가려면 이해하시는데 시간이 좀 걸리실겁니다.

같은 문제로 워낙 고생하시는것 같아서 도와드리고 싶어도 간단한 내용이 아니라 참 안타깝네요.

화이팅 입니다~~!!! 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

b
bde6891
10년 전
ㅜㅜ 기억해주셔서 감사합니다..
진즉 ajax좀 공부해둘껄..ㅎ.....

댓글을 작성하려면 로그인이 필요합니다.

Rido
10년 전

외부 디비에서 가지고 오는 데이터를 

내부 디비와 혼합해서 출력을 해주시는게 아니라면

 

그냥 비동기 형태의 ajax로 외부 서버와 연동해서

해당 데이터만 배열로 받아서 처리 하시는걸 생각해 보시는것도 

나쁘진 않아 보이는데요...

 

뭐 내부서버와 혼합해서 출력을 하더라도... 그냥 배열로 처리한다음

출력해주시면 될듯한데요

 

 

정확하게 어떤 시스템에서 어떤 데이터의 형태인지 알수 없으니..^^

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

b
bde6891
10년 전
음.. 그누보드 내에서 php코딩만으론 불 가능한가요?
ajax는 전혀 모르는 부분이라..ㅎ..
R
Rido
10년 전
글쎄요 php내에서 해결 하시는게 훨씬 어려워 보입니다만..
jquery를 활용하시면 ajax그리 어렵지 않습니다.

php소스 보실 수 있는 실력이시라면 금방 배우실수 있어요
ajax매소드만 조금 보시면 되니깐요..
b
bde6891
10년 전
음.. ajax로 한다면 흐름이 어떻게 될까여?
일단 그누보드 순정기능을 사용하고자 하면
내부db에 복제하는게 가장 정확한 방법인거 같아서요..

내부db테이블명과 외부db테이블명을 같게해도 데이터가 꼬인다고 해야하나..?
문제점이 발생하더라구요 ;;

출력은 그냥 외부db연동해서 쿼리문 실행해서 하면 출력은 하는데 그누보드 기능이 먹통이고..(실은 php전공도 아닙니다..ㅎ...ㅜㅜ)
R
Rido
10년 전
글쎄요 정확하게 어떤기능을 원하시는지를 알 수 없으니 정확한 답변을 드리기가 힘드네요..
그냥 제작의뢰로 가시는게 편해 보이긴 합니다만...

기능설명을 쓰기 힘드부분이라면
쪽지로 보내주시면 일단 아는 부분이라면 조언드리겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인