오라클 디비로 사용 한는되요 대문자 때문에 문의 드립니다.

오라클 디비로 사용 한는되요 대문자 때문에 문의 드립니다.

QA

오라클 디비로 사용 한는되요 대문자 때문에 문의 드립니다.

답변 3

본문

안녕하세요

 

오라클 디비로 연결해서 사용합니다.

 

// Oracle

function sql_oci_fetch_array($result)

{

    $row = @oci_fetch_assoc($result);

    set_lowercase($row);

    return $row;

}

 

// Oracle 오라클 기본 필드 대문자인데 소문자로 변환

function set_lowercase(&$row) {

    if(is_array($row)) {

        foreach ($row as $key => $value) {

            $lowerkey = strtolower($key);

            $row[$lowerkey] = $value;

        }

 

    }

 

}

 

그래서 ROW 를 가져오면

Array
(
    [P_IDX] => 101
    [P_GROUP] => 
    [P_TYPE] => faq
    [P_TYPE2] => table
    [P_CODE] => faq
    [P_TITLE] => 자주묻는질문
    [P_FILE] => 0
    [P_FILECNT] => 1
    [P_LINK] => 0
    [P_LINKCNT] => 1
    [P_NEWDATE] => 1
    [P_CATEGORY] => 1
    [P_AUTHORITY] => 0
    [P_CRDT] => 23/11/24 10:54:21.000000
    [P_UPDT] => 23/11/24 10:54:21.000000
    [P_DELYN] => 0
    [P_GROUPYN] => 
    [P_CAPTCHA] => 0
    [TRIAL165] => T
    [DATA_CNT] => 0
    [RNUM] => 1
    [TOTAL_CNT] => 7
    [p_idx] => 101
    [p_group] => 
    [p_type] => faq
    [p_type2] => table
    [p_code] => faq
    [p_title] => 자주묻는질문
    [p_file] => 0
    [p_filecnt] => 1
    [p_link] => 0
    [p_linkcnt] => 1
    [p_newdate] => 1
    [p_category] => 1
    [p_authority] => 0
    [p_crdt] => 23/11/24 10:54:21.000000
    [p_updt] => 23/11/24 10:54:21.000000
    [p_delyn] => 0
    [p_groupyn] => 
    [p_captcha] => 0
    [trial165] => T
    [data_cnt] => 0
    [rnum] => 1
    [total_cnt] => 7
)

 

변환은 잘되는되요 

 

함수를 사용해서 소문자로 변경을 해서 가져오는되요

 

$row["P_idx"] 필드 이렇게 가져오면

Notice: Undefined index: P_idx in...

 

이러면서 데이터를 못가져오네요...

 

고수님들 조언부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 3

다음과같은 방법도 있으니 참고해 보세요

 


function sql_oci_fetch_array($result)
{
    $row = @oci_fetch_assoc($result);
    
    if (is_array($row)) {
        $row = array_change_key_case($row, CASE_LOWER);
    }
    return $row;
}

 

이렇게 하면 대소문자 구분 없이 키를 사용할 수 있지 않을까 합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로