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

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

· 13년 전 · 3394 · 3
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;
?>

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

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

댓글 작성

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

로그인하기

댓글 3개

오류를 뱉는 내용 자체는 예상하시는데로 해당 게시물의 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])."',
이부분이 없더군요..
혹시 이런문제로 고생하시는분이 있으실까해서 내용적습니다.

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440