새 글 정리하기

문제 상황

DB에서 직접 게시판 테이블을 삭제한 경우, 새 글 테이블($g5['board_new_table']) 에 기존 게시판 정보가 남아 있어 충돌이 발생합니다.
이 때문에 새 글 보기에서 오류가 발생하거나 잘못된 데이터가 출력될 수 있습니다.


해결 방법

불필요하게 남아 있는 board_new_table 레코드를 정리해 주어야 합니다.
아래 PHP 스크립트를 생성해 실행하면, 존재하지 않는 게시글 정보를 자동으로 삭제할 수 있습니다.

<?
    include 'common.php';

    $qry = " select a.*, b.bo_subject, b.bo_mobile_subject 
             from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c 
             where a.bo_table = b.bo_table 
             and b.gr_id = c.gr_id 
             order by a.bn_id desc ";
    $result = sql_query($qry);

    for ($i=0; $row=sql_fetch_array($result); $i++) {
        $tmp_write_table = $g5['write_prefix'].$row['bo_table'];

        $row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
        if(!$row2) {
            sql_query(" delete from {$g5['board_new_table']} where bn_id = '{$row['bn_id']}' ");
        }
    }
?>

동작 방식

  1. board_new_table 의 모든 레코드를 불러옴
  2. 각 게시글이 실제 write_xxx 테이블에 존재하는지 확인
  3. 존재하지 않는 경우 board_new_table 에서 해당 레코드를 삭제

주의 사항

  • 스크립트 실행 전 DB 백업 필수
  • common.php 경로는 실제 설치된 그누보드 환경에 맞게 수정 필요
  • 스크립트 실행 후에는 삭제된 게시판 관련 새 글 정보가 정상적으로 정리됨

이 스크립트를 통해 board_new_table 과 실제 게시판 테이블을 동기화하면, 게시판 테이블 삭제로 인한 새 글 보기 충돌 문제를 해결할 수 있습니다.

コメント

お役立ち掲示板

Windows 윈도우 서버 2016 IIS 중지
閲覧 GnuBoard 새 글 정리하기
開発のヒント WinDivert 오류코드
GnuBoard CKEditor 5 플러그인
開発のヒント 워드프레스와 그누보드 연동 모듈
Delphi 권한상승
Windows WMI 복구하기
Kilho.net 윈도우7 에서 WinDivert 2.2 관련 오류 발생시
WordPress 회원가입시 닉네임 필드 추가하기
GnuBoard 임의로 테마설정하기
GnuBoard CKEditor 5 플러그인
GnuBoard 클라우드플레어(Cloudflare) 사용시 아이피 주소 및 URL…
開発のヒント 변수를 텍스트로 저장 및 캐시로 사용하기
Kilho.net 시크릿SNI 화이트 리스트 등록하기
開発のヒント 지정 폴더 내 PHP 파일 최종 수정일 확인하기
GnuBoard 훅을 통한 글쓰기, 댓글 알림
開発のヒント CDN 간단히 구축하기
GnuBoard Syntax Highlight 적용하기
WordPress 단어 수정하기
Kilho.net WinDivert1.4 서비스 종료
Kilho.net ChangeDNS
開発のヒント 파일형 멀티(?) 카운터
GChat 타이틀 글자 바꾸기
IFRAME 사용시 길호챗이 안될경우
SP2 팝업차단 무시하고 팝업띠우기?!
운영자가 접속중인 회원에게 1:1 대화 및 채팅방으로 초…
길호넷에서 제공되는 클립 맹글기!!
비밀방 개설시 오류가 생기는경우!!!
[펌] HTTP 에러 코드표
[펌] DNS설정으로 인터넷 빠르게!(설정법포함)