oci_new_connect() は Oracle サーバへの新規接続を確立しログオンします。 oci_connect() や oci_pconnect() と異なり、oci_new_connect() は接続をキャッシュしません。また、 常に新しくオープンされた接続ハンドルを返します。 これは、もしアプリケーションが 2 セットのクエリ間でトランザクション的な独立を必要とする場合に有効です。
オプションの3番目のパラメータには、ローカルOracleインスタンスの名前か tnsnames.ora における接続先のエントリ名を指定することができます。 オプションの3番目のパラメータが指定されない場合、 PHP は接続先のデータベースを定義するために環境変数 ORACLE_SID (Oracle インスタンス)または TWO_TASK (tnsnames.ora) を使用します。
パラメータ session_mode
はバージョン
1.1 からり用可能で、次の値を受け付けます:
OCI_DEFAULT,
OCI_SYSOPER, OCI_SYSDBA 。
OCI_SYSOPER もしくは
OCI_SYSDBA のいずれかが指定された場合、
oci_connect() は外部の信用を利用して
権限付きの接続を確立しようとします。
デフォルトでは権限付きの接続は無効です。有効にするためには、oci8.privileged_connect
をオンにしてください。
注意: もし PHP を Oracle Instant Client と併用している場合、 次に解説されている簡単な接続ネーミングメソッドを使用することができます: http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306 。 基本的にデータベース名として "//db_host[:port]/database_name" を指定できることを意味します。しかし、 古いネーミング方法を使用したい場合、ORACLE_HOME もしくは TNS_ADMIN のいずれかを設定 しなければなりません。
Oracle サーバのバージョン 9.2
以降を使用している場合、新規接続を確立する際に
charset
パラメータを指定することができます。
Oracleサーバ < 9.2 を使用している場合、このパラメータは無視され、
かわりに環境変数 NLS_LANG が使用されます。
以下の例は、接続がどのように分割されるかを示すものです。
エラーの場合、oci_new_connect() は FALSE を返します。
注意: PHP バージョン 5.0.0 以前では、代わりに ocinlogon() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_new_connect() への別名として残されていますが、 推奨されません。
oci_connect(), oci_pconnect() も参照ください。