포럼
확장성 게시판 모듈시, executeQuery 질문 (도저히 답을 모르겠어서..)
2011.11.08 17:14
참고로 전 개발자는 아니고.. 대충 코드정도 보면서 조금 만질 줄 아는 사용자 입니다.
질문게시판도 그렇고, 몇차례 문의를 했는데.. 아무도 딱히 답을 주시는분이 없어서..
공교롭게도 포럼에 올려 봅니다. 1.4.10 기준 board 모듈을 의존성으로 하여 TABLE document 에 colum 을 추가하여
update query 하고 있습니다.
xeboard.controller.php - require_once(_XE_PATH_.'modules/board/board.controller.php');
function triggerUpdateDocument(&$obj) { $summary_output = executeQuery('+ 'xeboard.updateDocumentSummary', $obj); if(!$summary_output->toBool()) { return $summary_output; } }
xeboard - updateDocumentSummary.xml
<query id="updateDocumentSummary" action="update"> <tables> <table name="documents" /> </tables> <columns> <column name="summary" var="summary" default="" /> </columns> <conditions> <condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" /> </conditions> </query>
summary 에 몇개의 내용을 입력하고 있는데요.. (게시판 리스트 추출시 뿌려주고 있습니다)
그런데 XE core 1.5.x 버전으로 갈아 타려고 하니.. submit 하면 컬럼이 없다고 Error Alert 를 띄우더군요.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `document_srl` = 112' at line 1
그래서.. 왜 왜 안될까.. 고민만 하던차에.. document 모듈의 스키마 documents.xml 에 summary 컬럼을 추가하였습니다.
그리고 캐쉬재생성을 하니.. 그 후부터는 에러가 나지 않고 잘 입력되고 있습니다.
(캐쉬에서 컬럼들을 이미 가지고 있다가 판단하는건지.. 도통 구조를 모르겠네요)
그런데.. 이건 임시방편이라 생각하고.. document 모듈이 업데이트 되면.. 다시 꼬이기 시작할테니
답은 아닌 것 같습니다.
방법은 없나요?
음하 이거 제가 코어 1.4.4.4를 기준으로 회원관리모듈에서 발생했던 고질적인 문제지요, 디비구조가 바꼇는데 소스파일을 커스텀하면 패치가 제대로 안먹혀 일어나는 내용같습니다. DB테이블뿐만아니고 스키마랑 쿼리xml문을 모두 제대로 업데이트 해주시면 문제없는걸로 알고있습니다. 다만 db에 테이블 수동으로 추가하실때는 타입이라던지 사이즈라던지가 정상적으로 들어갔을때와 차이가 없도록 해주셔야 안전할거 같습미다. 이것도 역시 임시방편이겠지만요. ㅠ