본문 바로가기

Story/oracle

pear oracle 외부서버 연결

반응형

참고
리눅스에서 sqlplus로 원격 오라클 디비 접속하기 (TNS_ADMIN, tnsnames.ora 파일 없이)
#sqlplus id/pass@ip/servicename

$_DSN     = "oci8://$_DB_USER:$_DB_PASS@$_DB_HOST/$_DB_NAME";
와 같이 설정하고 사용하면 호스트정보가 접속하는대 사용되지 않는다
$conn = oci_connect('아이디', '비밀번호', "XE");
$conn = oci_connect('아이디', '비밀번호', 'localhost/XE');
$conn = oci_connect('아이디', '비밀번호', '100.100.100.100/XE');
와 같은 형태로 사용이 되어야 외부서버에 접속인 되는대 pear 쪽에서 호스트정보가 무시된다
다음과 같이 수정하여 위의 형태를 만들어준다.
 

oci.php 파일에 230 라인쯤에 다음과 같은 부분이 있다
        // Backwards compatibility with DB < 1.7.0
        if (empty($dsn['database']) && !empty($dsn['hostspec'])) {
            $db = $dsn['hostspec'];
        } else {
            $db = $dsn['database'];
        }

을 다음과 같이 수정한다.

        // Backwards compatibility with DB < 1.7.0
        if (empty($dsn['database']) && !empty($dsn['hostspec'])) {
            $db = $dsn['hostspec'];
        } else if (!empty($dsn['database']) && !empty($dsn['hostspec'])) {
         $db = $dsn['hostspec']."/".$dsn['database'];

        } else {
            $db = $dsn['database'];
        }

반응형