채택완료

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

안녕하세요

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

// 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개

채택된 답변
+20 포인트
2023-12-02 (토) 16:23:42

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

Copy
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;
}

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

2023-12-02 (토) 18:49:28

배열키를 소문자로 바꿔주세요[P_idx] >>[p_idx]

Copy
// $row["P_idx"]

$row["p_idx"]

답변을 작성하려면 로그인이 필요합니다.