Returns a connection identifier needed for most other OCI8 operations.
See Connection Handling for
general information on connection management and connection
pooling.
From PHP 5.1.2 (PECL OCI8 1.1) oci_close() can
be used to close the connection.
The second and subsequent calls to oci_connect()
with the same parameters will return the connection handle returned
from the first call. This means that transactions in one handle are
also in the other handles, because they use the
same underlying database connection. If two
handles need to be transactionally isolated from each other, use
oci_new_connect() instead.
인수
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_SYSOPER나
OCI_SYSDBA를 지정하면, 이 함수는 외부 인증을 사용하여
권한을 가진 접속을 시도합니다.
권한을 가진 접속은 기본값으로 비활성화 되어 있습니다. 활성화하려면
oci8.privileged_connect
를 On으로 설정해야 합니다.
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.
예제
Example #1 Basic oci_connect() using Easy Connect syntax
<?php
// Connects to the XE service (i.e. database) on the "localhost" machine $conn = oci_connect('hr', 'welcome', 'localhost/XE'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); }
$stid = oci_parse($conn, 'SELECT * FROM employees'); oci_execute($stid);
// Both $c1 and $c2 show the same PHP resource id meaning they use the // same underlying database connection echo "c1 is $c1<br>\n"; echo "c2 is $c2<br>\n";
insert_data('c1', $c1); // Insert a row using c1 sleep(2); // sleep to show a different timestamp for the 2nd row insert_data('c2', $c2); // Insert a row using c2
select_data('c1', $c1); // Results of both inserts are returned select_data('c2', $c2); // Results of both inserts are returned
rollback('c1', $c1); // Rollback using c1
select_data('c1', $c1); // Both inserts have been rolled back select_data('c2', $c2);
drop_table($c1);
// Closing one of the connections makes the PHP variable unusable, but // the other could be used oci_close($c1); echo "c1 is $c1<br>\n"; echo "c2 is $c2<br>\n";
// Output is: // c1 is Resource id #5 // c2 is Resource id #5 // Created table // c1 inserted row without committing // c2 inserted row without committing // c1 ----selecting // 09-DEC-09 12:14:43 // 09-DEC-09 12:14:45 // c1 ----done // c2 ----selecting // 09-DEC-09 12:14:43 // 09-DEC-09 12:14:45 // c2 ----done // c1 rollback // c1 ----selecting // c1 ----done // c2 ----selecting // c2 ----done // Dropped table // c1 is // c2 is Resource id #5
?>
주의
Note:
An incorrectly installed or configured OCI8 extension will often
manifest itself as a connection problem or error.
See Installing/Configuring for
troubleshooting information.
참고
oci_pconnect() - Connect to an Oracle database using a persistent connection
oci_new_connect() - Connect to the Oracle server using a unique connection