Manual do PHP
Anterior |  | Próxima

# oci_connect

(PHP 5)

oci_connect -- Establishes a connection to the Oracle server

## Descrição

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

Returns a connection identifier needed for most other OCI calls.

## Parâmetros

`username`

  The Oracle user name.

`password`

  The password for `username`.

`db`

  This optional parameter can either contain the name of the local Oracle instance or the name of the entry in `tnsnames.ora`.

  If the 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.

`charset`

  Com o Oracle server 9.2 e seguintes, você pode indicar o parâmetro `charset`, que será utilizado na nova conexão. Se você estiver utilizando Oracle server < 9.2, este parâmetro será ignorado e a variável de ambiente NLS_LANG deverá ser utilizada.

`session_mode`

  This parameter 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, this function 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`.

## Valores de retornado

Returns a connection identifier or `FALSE` on error.

## Exemplos

Exemplo 1. oci_connect() example
`<?php echo "<pre>"; $db = ""; $c1 = oci_connect("scott", "tiger", $db); $c2 = oci_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); // Insert a row using c1 insert_data($c2); // Insert a row using c2 select_data($c1); // Results of both inserts are returned select_data($c2); rollback($c1); // Rollback using c1 select_data($c1); // Both inserts have been rolled back select_data($c2); insert_data($c2); // Insert a row using c2 commit($c2); // Commit using c2 select_data($c1); // Result of c2 insert is returned delete_data($c1); // Delete all rows in table using c1 select_data($c1); // No rows returned select_data($c2); // No rows returned commit($c1); // Commit using c1 select_data($c1); // No rows returned select_data($c2); // No rows returned drop_table($c1); echo "</pre>"; ?>`

## Notas

> Nota: 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`.

> Nota: 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 queries issued against one handle are also applied to the other handles, because they are the same handle. This behaviour is demonstrated in Example 1 below. If you require two handles to be transactionally isolated from each other, you should use oci_new_connect() instead.

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

## Veja também

oci_pconnect()
oci_new_connect()
oci_close()

Anterior | Principal | Próxima
oci_commit | Acima | oci_define_by_name