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')
  • ?
    기존에 있는 XML 쿼리를 참고해서, 배우시는 게 나을 것 같네요.
    참고할 만한 몇 가지 샘플입니다.

    ① modules/document/updateDocument.xml
    ② modules/document/updateVotedCount.xml
    ③ https://github.com/xpressengine/xe-tutorial/tree/master/XML_Query/09_select_query_with_subquery 을 보시면 서브 쿼리 작성하는 방법이 있습니다.