db에서 추가,삽입,변경을 하려고 하는데 주의할 점 문의드립니다.

db에서 추가,삽입,변경을 하려고 하는데 주의할 점 문의드립니다.

QA

db에서 추가,삽입,변경을 하려고 하는데 주의할 점 문의드립니다.

본문

[배경]

비슷한 스타일의 홈페이지를 여러개 제작할 필요가 있습니다.

이 스타일의 홈페이지에는 똑같은 게시판과 회원이 포함되어야 합니다.

 

[목적]

각각의 홈페이지 db에 임의적으로 세개의 게시판그룹과 각각 3~6개의 게시판과 1~2명의 회원을 추가하려고 합니다.

 

[기존 제가 사용하던 방식]

기본이 되는 홈페이지에 게시판그룹과 게시판, 회원을 추가한 뒤에 전체 db를 백업하여

새로 만드는 홈페이지에 그누보드를 설치한 뒤 db를 지우고 백업햇던 db를 올렸습니다.

 

[새로 하고자 하는 방식]

- insert를 통해 g5_group 테이블에 게시판그룹을 삽입하고 

- create를 통해 g5_write_XXX 등의 게시판을 생성하고 

- insert를 통해 g5_board 테이블에 게시판을 삽입하고

- insert를 통해 g5_member 테이블에 회원을 추가하려고 합니다.

 

[질문 1] 

이럴 경우 제가 혹시 빼먹은 테이블이나 조심해야할 점이 있을까요?

 

[질문 2]

위와는 다른 문제입니다. 

아래와 같은 코드로 게시판에서 도메인 변경을 통해 새로운 홈페이지에서 이미지의 경로를 바꿔주는 방법이 있더군요.

저는 bo_table 뿐만 아니라 기타 다른 테이블에서도 바꿔야 하는 곳(예, g5_content, g5_faq 등)이 더 있는데 이런 경우에는 어떻게 하면 될까요?

단순하게 아래 코드에서 g5_write_{$data[bo_table]} 부분만 g5_content 등으로 바꾸면 될까요?

 


<?php
include_once"_common.php";
//구사이트도메인 http://www. 제외
$old="flowerfield.in.gangwon.kr";
//새사이트도메인 http://www. 제외
$new="바꾸고자 하는 도메인";
$sql = sql_query("select * from g5_board");
while($data = sql_fetch_array($sql)){
 echo"$data[bo_table]<br>";
 sql_query("update g5_write_{$data[bo_table]} set wr_content=REPLACE(`wr_content`,'$old','$new')");
}
?>

 

질문이 좀 많아졌습니다.

고수님들 너그럽게 이해하시고 좋은 해법 부탁드립니다.

 

날씨가 점점 추워집니다~ 감기 조심들 하세요~

이 질문에 댓글 쓰기 :

답변 1

일반호스팅이라면 sql 내보내기를 통해서 전체 db를 백업 , 새롭게 덮어쓸수있고

 

아래에 추가하신 해당소스는 게시판의 내용에만 해당되는부분이며

추가로 다른 필드들도 수정을 해야합니다.

예를들어

 


while($data = sql_fetch_array($sql)){
	//echo"$data[bo_table]<br>";
	sql_query("update g5_write_{$data[bo_table]} set wr_content=REPLACE(`wr_content`,'$old','$new')");
	sql_query("update {$g5['board_table']} set bo_content_head=REPLACE(`bo_content_head`,'$old','$new')");
	sql_query("update {$g5['board_table']} set bo_mobile_content_head=REPLACE(`bo_mobile_content_head`,'$old','$new')");
}
 
$sql = sql_query("select * from {$g5['content_table']}");
sql_query("update {$g5['content_table']} set co_content=REPLACE(`co_content`,'$old','$new')");
sql_query("update {$g5['content_table']} set co_mobile_content=REPLACE(`co_mobile_content`,'$old','$new')");

 

이런필드들도 일괄로 새로운 주소를가르켜야 할것같네요

답변 감사합니다~
질문 2의 경우에는 말씀하신 소스대로 적용하면 테이블에서 상하단 내용도 바뀌어지는군요.
그리고 $g5['content_table'] 이렇게 하듯이 $g5['faq_table'] 등으로 응용이 가능하겠군요..

그리고 질문1의 경우에는 전체 백업과 덮어쓰기를 하면 필요없는 필드까지도 올라가기 때문에 기왕이면 필요한 부분만 뽑아서 업데이트하려고 하는거라 기존의 방식 대신 새로운 방식으로 바꿔보고자 하는 거라서 조금 애매하네요~

답변을 작성하시기 전에 로그인 해주세요.
전체 125,992 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT