db 수정하는 xml 쿼리문이 잘못되어서 계속 오류가 나는 것 같습니다.
$oDB = &DB::getInstance(); $query = $oDB->_query('UPDATE xe_documents SET voted_count = 50 WHERE document_srl = 380082 '); $result = $oDB->_fetch($query);
위와 같이 직접 디비쿼리문으로 작성하니 제대로 동작하는데
$p_star_args->module_srl = $this->module_srl; $p_star_args->document_srl = $this->document_srl; $p_star_args->voted_count = (int)$output->data->voted_count; $output = executeQuery('board.voteRemove', $p_star_args);
이렇게 적어주면 제대로 동작하질 않더라구요.
그래서 다음 문을 xml 쿼리문으로 바꾸고싶은데 어떻게 하면 될까요?
UPDATE xe_documents SET voted_count = (SELECT voted_count FROM xe_comments WHERE comment_srl = '삭제하려는 댓글 srl') WHERE document_srl = (SELECT document_srl FROM xe_comments WHERE comment_srl = '삭제하려는 댓글 srl')
참고할 만한 몇 가지 샘플입니다.
① modules/document/updateDocument.xml
② modules/document/updateVotedCount.xml
③ https://github.com/xpressengine/xe-tutorial/tree/master/XML_Query/09_select_query_with_subquery 을 보시면 서브 쿼리 작성하는 방법이 있습니다.