2개의 DB에 그누보드가 설치되었을 때 변경된 칼럼비교 (g5로 시작되는 테이블만 일단!)
팁게에 거의 글을 남기지 않다보니 syntax highlight 이용법이 영 서툰 것을 용서해주시기 바랍니다.
이번에 5.3베타에서 5.3정식으로 교체할 일이 생겨 혹여나 베타로만든 홈페이지의 DB와 정식으로 만든 홈페이지의 DB의 구조가 달라 오류가 생길까 미리 미연에 방지하는 차원에서 두 DB에 각각 설치된 그누보드의 구조를 비교해서 틀린 것이 있으면 뿌려주는 소스입니다.
(디비명과 테이블명을 넣으면 칼럼들을 반환해주는 함수를 만들어서 반환받은 배열변수를 비교해서 차이가 나면 뿌려주는 심플한... )
러프한 부족한 소스를 아량으로 이해해주시기를 바라며...
(* 루프돌 때 기준은 5.3정식 테이블을 기준으로 루프를 돌도록 했습니다.)
[code]
<?php
/**
* Created by PhpStorm.
* User: SDG
* Date: 2018-04-30
* Time: 오후 10:24
*/
include_once "../../common.php";
//print_r2($g5);
$link1 = mysqli_connect("localhost", "DB유저", "DB비번1", "DB명1");
$link2 = mysqli_connect("localhost", "DB유저", "DB비번2", "DB명2");
// g5로 시작하는 모든 테이블 스키마 출력 (배열로)
function getArrG5Table($dbName, $link)
{
$rIdx = "Tables_in_{$dbName}";
$arr = array();
// sql_query("use {$dbName}", true, $link);
$query = "show tables where Tables_in_{$dbName} like 'g5_%'";
$result = sql_query($query, true, $link);
while ($row = sql_fetch_array($result)) {
// print_r2($row[$rIdx]);
// echo "<br>";
$query2 = "desc {$row[$rIdx]}";
$result2 = sql_query($query2, true, $link);
while ($row2 = sql_fetch_array($result2)) {
// echo $row2["Field"];
// print_r2($row2);
$arr[$row[$rIdx]][] = $row2["Field"];
}
// echo "<hr>";
}
//print_r2($arr);
return $arr;
// 일단 추가된 테이블이 있는지 없는지 비교도 필요하다.
//테이블명을 모두 배열에 넣고 비교를 하는거다.
//
}
$arrBeta = getArrG5Table("DB명1", $link1);
$arrCurr = getArrG5Table("DB명2", $link2);
ksort($arrBeta);
ksort($arrCurr);
// 칼럼 비교
foreach ($arrCurr as $key => $value) {
$diff = array_diff($arrBeta[$key], $arrCurr[$key]);
if ($diff) {
echo "<h2>table 이름: {$key}</h2> ";
// print_r2($arrCurr[$key]);
// print_r2($arrBeta[$key]);
echo "<h3>차이</h3>";
print_r2($diff);
echo "<hr>";
}
unset($diff);
//
}
[/code]
댓글 1개
게시판 목록
개발자팁
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5036 | 웹서버 | 4년 전 | 2138 | ||
| 5035 | 웹서버 | 4년 전 | 2165 | ||
| 5034 | 웹서버 | 4년 전 | 2397 | ||
| 5033 | 웹서버 | 4년 전 | 1776 | ||
| 5032 | 웹서버 | 4년 전 | 2131 | ||
| 5031 | 웹서버 | 4년 전 | 2511 | ||
| 5030 | MySQL | 4년 전 | 2881 | ||
| 5029 | 웹서버 | 4년 전 | 7175 | ||
| 5028 | 웹서버 |
kerimdoor
|
4년 전 | 1629 | |
| 5027 | OS | 4년 전 | 6551 | ||
| 5026 | PHP |
|
4년 전 | 4638 | |
| 5025 | JavaScript |
|
4년 전 | 2402 | |
| 5024 | MySQL |
|
4년 전 | 3811 | |
| 5023 | MySQL | 4년 전 | 3027 | ||
| 5022 | PHP | 4년 전 | 2321 | ||
| 5021 | PHP |
|
4년 전 | 3247 | |
| 5020 | PHP | 4년 전 | 4301 | ||
| 5019 | PHP | 5년 전 | 4324 | ||
| 5018 | 웹서버 | 5년 전 | 6701 | ||
| 5017 | 기타 |
HappyTank
|
5년 전 | 5066 | |
| 5016 | MySQL | 5년 전 | 3084 | ||
| 5015 | 기타 | 5년 전 | 2269 | ||
| 5014 | 기타 | 5년 전 | 2831 | ||
| 5013 | 기타 | 5년 전 | 2251 | ||
| 5012 | 기타 | 5년 전 | 2259 | ||
| 5011 | 기타 | 5년 전 | 2211 | ||
| 5010 | 기타 | 5년 전 | 1770 | ||
| 5009 | 기타 | 5년 전 | 2379 | ||
| 5008 | 기타 | 5년 전 | 2008 | ||
| 5007 | 기타 | 5년 전 | 1971 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기