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,596
2741 2일 전 조회 98
2740 4일 전 조회 93
2739 1주 전 조회 205
2738 1주 전 조회 208
2737 1주 전 조회 173
2736 1주 전 조회 275
2735 3주 전 조회 277
2734 3주 전 조회 258
2733 1개월 전 조회 261
2732 1개월 전 조회 298
2731 1개월 전 조회 263
2730 1개월 전 조회 221
2729 1개월 전 조회 349
2728 1개월 전 조회 243
2727 1개월 전 조회 418
2726 1개월 전 조회 251
2725 1개월 전 조회 325
2724 1개월 전 조회 356
2723 1개월 전 조회 264
2722 1개월 전 조회 297
2721 1개월 전 조회 210
2720 2개월 전 조회 303
2719 2개월 전 조회 306
2718 2개월 전 조회 199
2717 2개월 전 조회 334
2716 2개월 전 조회 201
2715 2개월 전 조회 310
2714 2개월 전 조회 270
2713 2개월 전 조회 373
2712 2개월 전 조회 288
🐛 버그신고