Skip to content

function executeQuery()에 마스터와 슬레이브 DB를 선택할 수 있는 기능 #678

@soonjae

Description

@soonjae

마스터DB와 슬레이브DB의 ip를 다르게 하는 경우 일부 모듈에서 에러가 발생합니다.

마스트에 데이터를 입력하고 다른 function에서 select를 하는 경우 데이터를 가져오지 못하는 경우가 있습니다.

예를 들어서 ./modules/resource/resource.controller.php 의 procResourceAttachFile()에 다음과 같은 구문이 있습니다.

$output = executeQuery('resource.getItemByItemSrl', $args);

        $item = $output->data;
        if(!$item) return  new Object(-1,'msg_invalid_request');

이경우 자료를 입력하면 잘못된 요청이라고 나옵니다.

procResourceAttachOneTime()
procResourceAttach()에서 이미 자료는 입력되어있지만 슬레이브에서 select하는 경우 자료가 선택되지 않으니 에러가 발생합니다.

중요한 부분이 아니라서 해당부분은 주석처리하고 사용하고 있기는 합니다만 다른 모듈에서도 충분히 발생할 수 있는 문제라고 생각됩니다.

따라서 장기적으로는
executeQuery($query_id, $args = NULL, $arg_columns = NULL)를
executeQuery($query_id, $args = NULL, $arg_columns = NULL, $type = NULL) 식으로 마스터에서 읽어올수 있게 하능 방법이 필요할 듯합니다.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions