PHP 手冊
上一頁 |  | 下一頁

# 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]])

oci_new_connect() creates a new connection to an Oracle server and logs on. 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.

Using Oracle server version 9.2 and greater, you can indicate charset parameter, which will be used in the new connection. If you're using Oracle server < 9.2, this parameter will be ignored and NLS_LANG environment variable will be used instead.

oci_new_connect() forces the creation of a new connection. This should be used if you need to isolate a set of transactions. By default, connections are shared and subsequent calls to oci_connect() will return the same connection identifier.

The following demonstrates how you can separate connections.

示範 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.

> 備注: 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().

上一頁 | 最開頭 | 下一頁
oci_new_collection | 上一層 | oci_new_cursor