웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
New FAQ Skin 사용 시 DB 에러 수정하기
2013.10.02 18:17
DB 디버깅을 하려고 config/config.user.inc.php 파일을 수정해서 사용하고 있었는데,
어느 날부터 /files/_debug_db_query.php 파일에 알 수 없는 DB 에러가 누적되기에 확인을 해 보았습니다.
증상:
select count(*) as total from xe_documents where module_srl = 모듈번호와 같은 쿼리에서 계속해서 에러가 발생하였습니다. xe_documents 테이블이 존재하지 않는다고 나오는군요.
xe_documents 테이블이 존재하지 않는다고 에러가 발생하길래, 먼저 이 쿼리가 어디서 실행되는지 알아보았습니다.
모듈하고 위젯을 살펴봤는데 어느 곳에도 저런 쿼리는 없었고, 사건(?)은 점점 미궁으로 빠져들어갔습니다.
한동안 삽질을 하다가 이지보드 게시판 스킨에 있는 쿼리문을 보고 삘을 똭!!! 받고 각종 스킨들을 모조리 조사해보니, XE 공식 자료실에 올라와있는 New FAQ Skin 때문이였습니다.
확인해보니까 테이블 머릿말이 xe_가 아니여서 발생하는 문제였습니다. 이 스킨의 경우 전체 글 수를 가져오기 위해 스킨에서 직접 쿼리를 실행하더군요. 테이블 머릿말이 xe_가 아닌 경우는 고려하지 못한 듯합니다.
----- 이상 주절주절 -----
modules/board/skins/new_faq/_style.list.html 1~5째 줄을 보면 아래와 같은 구문이 있습니다.
{@
$oDB = &DB::getInstance();
$query = $oDB->_query('select count(*) as total from xe_documents where module_srl ='.$module_info->module_srl);
$result = $oDB->_fetch($query);
}
초록색으로 강조한 부분을 자신이 사용하고 있는 테이블 머릿말로 수정해주면 끝납니다.