Q&A

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')
이온디 Lv. 13
# 라이믹스 스킨 제작은 어디? >>>> XE 레이아웃, 라이믹스 스킨제작은 이온디에서 커스터마이징해드립니다.
# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com

댓글 1

  • 기존에 있는 XML 쿼리를 참고해서, 배우시는 게 나을 것 같네요.
    참고할 만한 몇 가지 샘플입니다.

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