update : 2015.11.03
php.shukuma.com

검색:
 
 
Connect to the Oracle server using a unique connection

oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connectConnect to the Oracle server using a unique connection

설명

resource oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Establishes a new connection to an Oracle server and logs on.

Unlike oci_connect() and oci_pconnect(), oci_new_connect() does not cache connections and will always return a brand-new freshly opened connection handle. This is useful if your application needs transactional isolation between two sets of queries.

인수

username

The Oracle user name.

password

The password for username.

connection_string

접속을 위해 오라클 인스턴스를 포함합니다. » Easy Connect string이나 tnsnames.ora 파일의 Connect Name, 로컬 오라클 인스턴스의 이름일 수 있습니다.

지정하지 않으면, PHP는 접속할 오라클 인스턴스를 찾기 위해 TWO_TASK(리눅스)나 LOCAL(윈도우), 그리고 ORACLE_SID 등의 환경 변수를 사용합니다.

Easy Connect naming 방식을 사용하려면, PHP가 오라클 10g 이상의 클라이언트 라이브러리를 사용해야 합니다. 오라클 10g에서 Easy Connect string 형식은: [//]host_name[:port][/service_name] 입니다. 오라클 11g부터는: [//]host_name[:port][/service_name][:server_type][/instance_name] 입니다. 서비스 이름은 데이터베이스 서버에서 오라클 유틸리티 lsnrctl status를 실행하여 찾을 수 있습니다.

tnsnames.ora 파일은 오라클 넷 검색 경로에 있을 수 있습니다. $ORACLE_HOME/network/admin/etc 등을 포함합니다. TNS_ADMIN을 설정하여 $TNS_ADMIN/tnsnames.ora를 읽게 할 수도 있습니다. 웹 데몬이 이 파일에 읽기 권한을 가지도록 설정하십시오.

character_set

오라클 클라이언트 라이브러리가 사용할 문자셋을 결정합니다. 이 문자셋은 데이터베이스 문자셋과 일치하지 않아도 됩니다. 일치하지 않을 경우, 오라클이 데이베이스 문자셋과 데이터 변환을 수행합니다. 문자셋에 의존하는 것은 유용한 결과가 아닐 수 있습니다. 또한 변환 수행을 위한 시간 오버헤드가 추가됩니다.

지정하지 않을 경우, 오라클 클라이언트 라이브러리는 NLS_LANG 환경 변수를 통해 문자 셋을 결정합니다.

이 인수를 사용하면 접속에 필요한 시간을 줄일 수 있습니다.

session_mode

이 인수는 PHP 5 (PECL OCI8 1.1)부터 사용할 수 있고 다음 값을 받아들입니다: OCI_DEFAULT, OCI_SYSOPER, OCI_SYSDBA. OCI_SYSOPEROCI_SYSDBA를 지정하면, 이 함수는 외부 인증을 사용하여 권한을 가진 접속을 시도합니다. 권한을 가진 접속은 기본값으로 비활성화 되어 있습니다. 활성화하려면 oci8.privileged_connectOn으로 설정해야 합니다.

PHP 5.3 (PECL OCI8 1.3.4) introduced the OCI_CRED_EXT mode value. This tells Oracle to use External or OS authentication, which must be configured in the database. The OCI_CRED_EXT flag can only be used with username of "/" and a empty password. oci8.privileged_connect may be On or Off.

OCI_CRED_EXT may be combined with the OCI_SYSOPER or OCI_SYSDBA modes.

OCI_CRED_EXT is not supported on Windows for security reasons.

반환값

Returns a connection identifier or FALSE on error.

예제

The following demonstrates how you can separate connections.

Example #1 oci_new_connect() example

<?php

// create table mytab (mycol number);

function query($name$c)
{
    echo 
"Querying $name\n";
    
$s oci_parse($c"select * from mytab");
    
oci_execute($sOCI_NO_AUTO_COMMIT);
    
$row oci_fetch_array($sOCI_ASSOC);
    if (!
$row) {
        echo 
"No rows\n";
    } else {
        do {
            foreach (
$row as $item)
                echo 
$item " ";
            echo 
"\n";
        } while ((
$row oci_fetch_array($sOCI_ASSOC)) != false);
    }
}

$c1 oci_connect("hr""welcome""localhost/orcl");
$c2 oci_new_connect("hr""welcome""localhost/orcl");

$s oci_parse($c1"insert into mytab values(1234)");
oci_execute($sOCI_NO_AUTO_COMMIT);

query("basic connection"$c1);
query("new connection"$c2);
oci_commit($c1);
query("new connection after commit"$c2);

// Output is:
//   Querying basic connection
//   1234 
//   Querying new connection
//   No rows
//   Querying new connection after commit
//   1234 

?>

See oci_connect() for further examples of parameter usage.

참고