PHP kézikönyv
Előző |  | Következő

# oci_new_connect

(PHP 5)

oci_new_connect -- Establishes a new connection to the Oracle server

## Description

resource oci_new_connect ( string username, string password [, string db [, string charset [, int session_mode]]] )

oci_new_connect() 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.

The optional third parameter can either contain the name of the local Oracle instance or the name of the entry in `tnsnames.ora`. If the third parameter is not specified, PHP uses environment variables ORACLE_SID and TWO_TASK to determine the name of local Oracle instance and location of `tnsnames.ora` accordingly.

Parameter session_mode is available since version 1.1 and accepts the following values: `OCI_DEFAULT`, `OCI_SYSOPER` and `OCI_SYSDBA`. If either `OCI_SYSOPER` or `OCI_SYSDBA` were specified, oci_new_connect() will try to establish privileged connection using external credentials. Privileged connections are disabled by default. To enable them you need to set oci8.privileged_connect to On.

> Megjegyzés: If you're using PHP with Oracle Instant Client, you can use easy connect naming method described here: http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306. Basically this means you can specify "//db_host[:port]/database_name" as database name. But if you want to use the old way of naming you must set either `ORACLE_HOME` or `TNS_ADMIN`.

Az Oracle 9.2 vagy újabb változat használata eseténlehetőséged van egy charset paraméter megadására is, ami az eztán nyitandó kapcsolatokra lesz érvényes. Ha a 9.2-es változatnál régebbivel dolgozol, a fenti paraméter figyelmen kívül lesz hagyva, helyette az NLS_LANG környezeti változó értéke lesz a mérvadó.

The following demonstrates how you can separate connections.

Példa 1. oci_new_connect() example
`<?php echo "<html><pre>"; $db = ""; $c1 = oci_connect("scott", "tiger", $db); $c2 = oci_new_connect("scott", "tiger", $db); function create_table($conn) { $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))"); oci_execute($stmt); echo $conn . " created table\n\n"; } function drop_table($conn) { $stmt = oci_parse($conn, "drop table scott.hallo"); oci_execute($stmt); echo $conn . " dropped table\n\n"; } function insert_data($conn) { $stmt = oci_parse($conn, "insert into scott.hallo values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " inserted hallo\n\n"; } function delete_data($conn) { $stmt = oci_parse($conn, "delete from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " deleted hallo\n\n"; } function commit($conn) { oci_commit($conn); echo $conn . " committed\n\n"; } function rollback($conn) { oci_rollback($conn); echo $conn . " rollback\n\n"; } function select_data($conn) { $stmt = oci_parse($conn, "select * from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn . "----selecting\n\n"; while (oci_fetch($stmt)) { echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n"; } echo $conn . "----done\n\n"; } create_table($c1); insert_data($c1); select_data($c1); select_data($c2); rollback($c1); select_data($c1); select_data($c2); insert_data($c2); commit($c2); select_data($c1); delete_data($c1); select_data($c1); select_data($c2); commit($c1); select_data($c1); select_data($c2); drop_table($c1); echo "</pre></html>"; ?>`

oci_new_connect() returns `FALSE` on error.

> Megjegyzés: In PHP versions before 5.0.0 you must use ocinlogon() instead. This name still can be used, it was left as alias of oci_new_connect() for downwards compatability. This, however, is deprecated and not recommended.

See also oci_connect() and oci_pconnect().

Előző | Tartalom | Következő
oci_new_collection | Fel | oci_new_cursor