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

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개

게시글 목록

번호 제목
16429
16424
16423
16412
16408
16407
16401
16395
16394
16391
16390
16389
16387
16386
JavaScript js playground
16382
16381
16377
16374
16372
16356
16355
16354
16353
16347
16346
16339
16338
16332
16331
16330