게시물 복사 오류 1054 : Unknown column 'wr_date' in 'field list' > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

게시물 복사 오류 1054 : Unknown column 'wr_date' in 'field list' 정보

게시물 복사 오류 1054 : Unknown column 'wr_date' in 'field list'

본문

insert into g4_write_01_02 set wr_num = '-87', wr_reply = '', wr_is_comment = '0', wr_comment = '0', wr_comment_reply = '', ca_name = '', wr_option = 'html1', wr_subject = '濡쒖뒪�뿏�젮�젅�뒪 臾댁뿭�쟾�떆�쉶 - TRANSIT LA', wr_date = '', wr_content =
.
.
.

wr_6 = '', wr_7 = '', wr_8 = '', wr_9 = '', wr_10 = ''
1054 : Unknown column 'wr_date' in 'field list'

error file : /bbs/move_update.php

루비호스팅 -> 카페24 로 이전하였는데요.
게시판 기능중 게시글을 복사/이동 하는 기능이 있었는데
위와같은오류가 발생하네요.

 /bbs/move_update.php 파일 내용입니다.
<?
include_once("./_common.php");

// 게시판 관리자 이상 복사, 이동 가능
if ($is_admin != 'board' && $is_admin != 'group' && $is_admin != 'super')
    alert_close("게시판 관리자 이상 접근이 가능합니다.");

if ($sw != "move" && $sw != "copy")
    alert("sw 값이 제대로 넘어오지 않았습니다.");

// 원본 파일 디렉토리
$src_dir = "$g4[path]/data/file/$bo_table";

$save = array();
$save_count_write = 0;
$save_count_comment = 0;
$cnt = 0;

// SQL Injection 으로 인한 코드 보완
//$sql = " select distinct wr_num from $write_table where wr_id in (" . stripslashes($wr_id_list) . ") order by wr_id ";
$sql = " select distinct wr_num from $write_table where wr_id in ($wr_id_list) order by wr_id ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
    $wr_num = $row[wr_num];
    for ($i=0; $i<count($_POST['chk_bo_table']); $i++)
    {
        $move_bo_table = $_POST['chk_bo_table'][$i];
        $move_write_table = $g4['write_prefix'] . $move_bo_table;

        $src_dir = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
        $dst_dir = "$g4[path]/data/file/$move_bo_table"; // 복사본 디렉토리

        $count_write = 0;
        $count_comment = 0;

        $next_wr_num = get_next_num($move_write_table);

        $sql2 = " select * from $write_table where wr_num = '$wr_num' order by wr_parent, wr_comment desc, wr_id ";
        $result2 = sql_query($sql2);
        while ($row2 = sql_fetch_array($result2))
        {
            $nick = cut_str($member[mb_nick], $config[cf_cut_name]);
            if (!$row2[wr_is_comment] && $config[cf_use_copy_log])
                $row2[wr_content] .= " \n[이 게시물은 {$nick}님에 의해 $g4[time_ymdhis] {$board[bo_subject]}에서 " . ($sw == 'copy' ? '복사' : '이동') ." 됨]";

            $sql = " insert into $move_write_table
                        set wr_num            = '$next_wr_num',
                            wr_reply          = '$row2[wr_reply]',
                            wr_is_comment    = '$row2[wr_is_comment]',
                            wr_comment        = '$row2[wr_comment]',
                            wr_comment_reply  = '$row2[wr_comment_reply]',
                            ca_name          = '".addslashes($row2[ca_name])."',
                            wr_option        = '$row2[wr_option]',
                            wr_subject        = '".addslashes($row2[wr_subject])."',
                            wr_date          = '".addslashes($row2[wr_date])."',
                            wr_content        = '".addslashes($row2[wr_content])."',
                            wr_link1          = '".addslashes($row2[wr_link1])."',
                            wr_link2          = '".addslashes($row2[wr_link2])."',
                            wr_link1_hit      = '$row2[wr_link1_hit]',
                            wr_link2_hit      = '$row2[wr_link2_hit]',
                            wr_trackback      = '".addslashes($row2[wr_trackback])."',
                            wr_hit            = '$row2[wr_hit]',
                            wr_good          = '$row2[wr_good]',
                            wr_nogood        = '$row2[wr_nogood]',
                            mb_id            = '$row2[mb_id]',
                            wr_password      = '$row2[wr_password]',
                            wr_name          = '".addslashes($row2[wr_name])."',
                            wr_email          = '".addslashes($row2[wr_email])."',
                            wr_homepage      = '".addslashes($row2[wr_homepage])."',
                            wr_datetime      = '$row2[wr_datetime]',
                            wr_last          = '$row2[wr_last]',
                            wr_ip            = '$row2[wr_ip]',
                            wr_1              = '".addslashes($row2[wr_1])."',
                            wr_2              = '".addslashes($row2[wr_2])."',
                            wr_3              = '".addslashes($row2[wr_3])."',
                            wr_4              = '".addslashes($row2[wr_4])."',
                            wr_5              = '".addslashes($row2[wr_5])."',
                            wr_6              = '".addslashes($row2[wr_6])."',
                            wr_7              = '".addslashes($row2[wr_7])."',
                            wr_8              = '".addslashes($row2[wr_8])."',
                            wr_9              = '".addslashes($row2[wr_9])."',
                            wr_10            = '".addslashes($row2[wr_10])."' ";
            sql_query($sql);

            $insert_id = mysql_insert_id();

            // 코멘트가 아니라면
            if (!$row2[wr_is_comment])
            {
                $save_parent = $insert_id;

                $sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' order by bf_no ";
                $result3 = sql_query($sql3);
                for ($k=0; $row3 = sql_fetch_array($result3); $k++)
                {
                    if ($row3[bf_file])
                    {
                        // 원본파일을 복사하고 퍼미션을 변경
                        @copy("$src_dir/$row3[bf_file]", "$dst_dir/$row3[bf_file]");
                        @chmod("$dst_dir/$row3[bf_file]", 0606);
                    }

                    $sql = " insert into $g4[board_file_table]
                                set bo_table = '$move_bo_table',
                                    wr_id = '$insert_id',
                                    bf_no = '$row3[bf_no]',
                                    bf_source = '$row3[bf_source]',
                                    bf_file = '$row3[bf_file]',
                                    bf_download = '$row3[bf_download]',
                                    bf_content = '".addslashes($row3[bf_content])."',
                                    bf_filesize = '$row3[bf_filesize]',
                                    bf_width = '$row3[bf_width]',
                                    bf_height = '$row3[bf_height]',
                                    bf_type = '$row3[bf_type]',
                                    bf_datetime = '$row3[bf_datetime]' ";
                    sql_query($sql);

                    if ($sw == "move" && $row3[bf_file])
                        $save[$cnt][bf_file][$k] = "$src_dir/$row3[bf_file]";
                }

                $count_write++;

                if ($sw == "move" && $i == 0)
                {
                    // 스크랩 이동
                    sql_query(" update $g4[scrap_table] set bo_table = '$move_bo_table', wr_id = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");

                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$save_parent', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }
            else
            {
                $count_comment++;

                if ($sw == "move")
                {
                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$insert_id', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }

$TOTAL = sql_fetch("SELECT COUNT(`code`) AS `count` FROM `{$g4['table_prefix']}expo` WHERE `bo_table` = '{$board['bo_table']}' AND `wr_id` = '{$row2['wr_id']}'");
if($TOTAL['count'] > 0)
{
$cache1 = sql_query("SELECT * FROM `{$g4['table_prefix']}expo` WHERE `bo_table` = '{$board['bo_table']}' AND `wr_id` = '{$row2['wr_id']}'");
while($cache2 = mysql_fetch_assoc($cache1))
{
$cache2 = array_map('mysql_real_escape_string', $cache2);
sql_query("INSERT INTO `{$g4['table_prefix']}expo` SET `field01` = '{$cache2['field01']}', `field02` = '{$cache2['field02']}', `field03` = '{$cache2['field03']}', `field04` = '{$cache2['field04']}', `field05` = '{$cache2['field05']}', `bo_table` = '{$move_bo_table}', `wr_id` = '{$insert_id}'");
}
}

            sql_query(" update $move_write_table set wr_parent = '$save_parent' where wr_id = '$insert_id' ");

            if ($sw == "move")
                $save[$cnt][wr_id] = $row2[wr_parent];

            $cnt++;
        }


        sql_query(" update $g4[board_table] set bo_count_write  = bo_count_write  + '$count_write'  where bo_table = '$move_bo_table' ");
        sql_query(" update $g4[board_table] set bo_count_comment = bo_count_comment + '$count_comment' where bo_table = '$move_bo_table' ");
    }

    $save_count_write += $count_write;
    $save_count_comment += $count_comment;
}

if ($sw == "move")
{
    for ($i=0; $i<count($save); $i++)
    {
        for ($k=0; $k<count($save[$i][bf_file]); $k++)
            @unlink($save[$i][bf_file][$k]);   

        sql_query(" delete from $write_table where wr_parent = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
    }
    sql_query(" update $g4[board_table] set bo_count_write = bo_count_write - '$save_count_write', bo_count_comment = bo_count_comment - '$save_count_comment' where bo_table = '$bo_table' ");
}

$msg = "해당 게시물을 선택한 게시판으로 $act 하였습니다.";
$opener_href = "./board.php?bo_table=$bo_table&page=$page&$qstr";

echo <<<HEREDOC
<meta http-equiv='content-type' content='text/html; charset={$g4['charset']}'>
<script type="text/javascript">
alert("{$msg}");
opener.document.location.href = "{$opener_href}";
window.close();
</script>
HEREDOC;
?>

필드를 추가 뭐 등등 비슷한오류 내용을 검색해봐도 뭔소린지 도무지 모르겠네요..

참난감합니다. 호스팅이전비용 발생을 줄요보고자 직접 옯긴게 잘못인가요..
  • 복사

댓글 전체

오류를 뱉는 내용 자체는 예상하시는데로 해당 게시물의 DB테이블 내에 `wr_date` 필드가 존재하지 않아서 생기는 메시지입니다. 제가 알기로는 현재 버전의 그누보드 게시물 DB테이블에는 `wr_date` 라는 필드요소를 가지고 있지 않습니다. `wr_datetime` 이라는 필드가 이런 정보를 담는 역할을 아는 것으로 알고 있구요. 혹시나 커스트마이징의 이력이 있거나, 다른 빌더를 활용하신 건지 모르겠습니다.
서버 이전을 하실 때 DB와 FTP서버 내의 파일을 전부 이전하셨다면 큰 문제가 없으셨을 것 같기도 한데, 카페24에서 기본으로 세팅되어있는 그누보드로 데이터 이전만 하신건지.
여튼 당장에 해결방법으로는 카페24에서 제공하는 DB관리자 phpMyAdmin 등을 통해서 해당 게시물 테이블들에서 `wr_date` 필드를 게시판별로 추가해놓으시면 오류현상은 나타나지 않을 것으로 보여지네요~
답변 감사합니다  대충어떤내용인지알겠어요. 내일출근해서 하루종일씨름할생각에 뒷골이땡겼었는데 덕분에 오늘 푹잘수있겠네요 늦은시간인데도 답변달아주셔서감사합니다 좋은밤되세요~
문제 해결하였습니다. 필드 추가하는방법을 몰라서 이것저것 검색해보다가.
phpmyadmin 까지 들어가긴했는데
wr_date 가 단순 문자는 아닌것 같아서 cafe24 쪽에 요청을 하였습니다.
두시간 지난후 답변을 받았는데 wr_date 필드를 추가할 경우 다른 문제가 생길수 있다더군요
그리고 다른 해결책을 알려주더군요
wr_date          = '".addslashes($row2[wr_date])."',
이부분을 삭제 하라고..
그래서 삭제해보았습니다.. 헉 되네요.. 기능에 이상없이 됩니다..

"SoGood" 님 덕분에 힌트를 얻었네요
서버이전할때 db만 이전한게 잘못인것 같습니다.
예전 서버에 ftp 자료를 찾아서 파일을 열어보니 cafe24 해결 방안대로
wr_date          = '".addslashes($row2[wr_date])."',
 이부분이 없더군요..
혹시 이런문제로 고생하시는분이 있으실까해서 내용적습니다.
© SIRSOFT
현재 페이지 제일 처음으로