2026, 새로운 도약을 시작합니다.

게시판 복사 오류 원인중 한 가지 처리 방법(wr_datetime, wr_1 등 컬럼의 데이터타입 변경후 발생한...)

우선, common.lib.php 을 변경하시는 것에 대한 책임은 지지 않습니다. 부디 저 같은 불편함을 겪으시는 분께 도움이 되었으면 하는 바램으로 정말 정말 오랜만에 팁게에 글을 남겨봅니다. 

혹시 아래의 방안이 추천할 만하다 싶으시면, 개발팀에서 common.lib.php 의 해당 함수 업그레이드를 해주시면 어떨지 모르겠습니다. 변경하시는 것의 결과에 대한 책임은 지지 않습니다. 부디 저 같은 불편함을 겪으시는 분께 도움이 되었으면 합니다. 

현대적 호스팅환경에서 게시판의 칼럼을 변경할 경우에 종종 생기게 되는 것 같습니다.... 

혹여나 테이블을 workbench 등으로 wr_1~wr_10 등 칼럼 데이터 타입을 int, text 등으로 바꾸려고하는데  alter 가 되지 않을 때가 있습니다.

대부분 wr_datetime default 값이 '0000-00-00 00:00:00' 초기에 되어있어서 (낮은 버전 호환성을 위해 넣어두신 듯) 이 칼럼 때문에 오류가 납니다.

저는 이때 default 값을 `CURRENT_TIMESTAMP()` 로 바꿔서 사용합니다.  

그런데, 이것 때문에 이렇게 wr_1~10 등의 칼럼을 바꾼 상태에서는 관리자의 게시판 메뉴에서 해당 게시판의 `게시판 복사`가 이뤄지지 않습니다. 

복사되었다고 오류도 없이 목록에는 보이지만, 실제로 DB에는 해당 `g5_write_게시판명`으로 생성된 테이블이 없습니다. 따라서 글을 써도 써지지 않고 관리자 게시판 목록에는 보이고 정신이 몽롱한 상태가 되는 것인데, 생성 sql문을 echo로 확인하다보니 원인을 알게 되었습니다. 

아래의 함수 때문인데요. 

create 구문에서 해당 칼럼의 default 값을 넣을 때 `싱글 쿼테이션(')`이 없어야하는데, 무조건 쿼테이션마크를 넣는 로직 때문에 생긴 것이었습니다. 해결하기 위해  `board_copy_update.php` 파일의 아래와 같은 곳의 함수명이 있는데 이 함수를 수정해주면 됩니다. 

// 게시판 테이블 생성
$sql = get_table_define($g5['write_prefix'] . $bo_table);
위의 $sql 변수가 새롭게 `g5_write_게시판이름` 으로 테이블을 만드는데, 거기에 오류가 생긴 것이었습니다. 

`common.lib.php` 1900~2000번째줄 사이에 있는 함수

// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")

이 함수 내부에 아래의 로직으로 조건문을 바꿔주시면 됩니다.

... 기존코드
if (isset($row['Default']) && $row['Default'] != '') {
    $default_value = strtoupper($row['Default']);
    
    // 'CURRENT_TIMESTAMP' 단어로 시작하면 붙이지 않도록 함.
    if (strpos($default_value, 'CURRENT_TIMESTAMP') === 0) {
        $schema_create .= ' DEFAULT ' . $row['Default'];
    } else {
        // 기존 코드
        $schema_create .= ' DEFAULT \'' . $row['Default'] . '\'';
    }
}
... 기존코드

아래의 빨간색 테두리 부분을 위 코드로 대체하면 됩니다. 

ps.

코드의 원인을 분석해달라고 재민이랑 조금 나누며 도움을 조금 받았습니다. ㅎㅎ;a

982506490_1758273720.4758.png

|

댓글 2개

감사합니다 ^^

댓글 작성

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

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,594
2711 2개월 전 조회 323
2710 2개월 전 조회 226
2709 2개월 전 조회 393
2708 2개월 전 조회 232
2707 2개월 전 조회 275
2706 2개월 전 조회 274
2705 2개월 전 조회 144
2704 2개월 전 조회 295
2703 2개월 전 조회 268
2702 2개월 전 조회 282
2701 2개월 전 조회 279
2700 2개월 전 조회 225
2699 2개월 전 조회 173
2698 2개월 전 조회 221
2697 2개월 전 조회 192
2696 2개월 전 조회 165
2695 3개월 전 조회 321
2694 3개월 전 조회 161
2693 3개월 전 조회 215
2692 3개월 전 조회 219
2691 3개월 전 조회 364
2690 3개월 전 조회 269
2689 3개월 전 조회 290
2688 3개월 전 조회 239
2687 3개월 전 조회 452
2686 3개월 전 조회 503
2685 3개월 전 조회 635
2684 3개월 전 조회 371
2683 3개월 전 조회 513
2682 3개월 전 조회 326
🐛 버그신고