oci_new_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_connectConnect to the Oracle server using a unique connection

Descrierea

oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] ) : resource

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.

Parametri

username

The Oracle user name.

password

The password for username.

connection_string

Conține instanța Oracle la care se efectuează conectarea. Poate fi un » șir Easy Connect, sau o Denumire de conexiune din fișierul tnsnames.ora, sau denumirea unei instanțe locale Oracle.

Dacă nu este specificat, PHP utilizează variabile de mediu, cum ar fi TWO_TASK (în Linux) sau LOCAL (în Windows) și ORACLE_SID pentru a determina instanța Oracle la care trebuie efectuată conexiunea.

Pentru a utiliza metoda Easy Connect, PHP trebuie să fie legat cu bibliotecile-client Oracle 10g sau ulterioare. Șirul Easy Connect pentru Oracle 10g este de forma: [//]host_name[:port][/service_name]. Pentru Oracle 11g sintaxa este: [//]host_name[:port][/service_name][:server_type][/instance_name]. Denumirile serviciilor pot fi găsite rulând utilitara Oracle lsnrctl status pe mașina unde rulează serverul de baze de date.

Fișierul tnsnames.ora poate fi în calea de căutare Oracle Net, care include $ORACLE_HOME/network/admin și /etc. Ca alternativă, poate fi stabilit TNS_ADMIN astfel încât $TNS_ADMIN/tnsnames.ora este citit. Asigurați-vă că serviciul web posedă dreptul de citire a acestui fișier.

character_set

Determină setul de caractere utilizat de bibliotecile-client Oracle. Setul de caractere nu trebuie în mod obligatoriu să se potrivească cu setul de caractere al bazei de date. Dacă nu se potrivește, Oracle va face tot posibilul să convertească datele din și în setul de caractere al bazei de date. În dependență de seturile de caractere aceasta poate să ducă la rezultate incorecte. Convertirea de asemenea impune un timp mărit de prelucrare.

Dacă nu este specificat, bibliotecile-client Oracle determină setul de caractere din variabila de mediu NLS_LANG.

Transmiterea acestui parametru poate reduce timpul necesar pentru conectare.

session_mode

Acest parametru este disponibil începând cu versiunea PHP 5 (PECL OCI8 1.1) și acceptă următoarele valori: OCI_DEFAULT, OCI_SYSOPER și OCI_SYSDBA. Dacă sunt specificate OCI_SYSOPER sau OCI_SYSDBA, această funcție va încerca să stabilească o conexiune privilegiată utilizând credențiale externe. Conexiunile privilegiate sunt dezactivate implicit. Pentru a le activa trebuie să stabiliți oci8.privileged_connect în On.

PHP 5.3 (PECL OCI8 1.3.4) a introdus valoarea modului OCI_CRED_EXT. Aceasta indică Oracle să utilizeze autentificare Externă sau la nivel de S.O., ceea ce trebuie configurat în baza de date. Fanionul OCI_CRED_EXT poate fi utilizat doar cu numele utilizatorului "/" și o parolă vidă. oci8.privileged_connect poate fi On sau Off.

OCI_CRED_EXT poate fi combinat cu modul OCI_SYSOPER sau OCI_SYSDBA.

OCI_CRED_EXT nu este susținut pe Windows din motive de securitate.

Valorile întoarse

Returns a connection identifier or FALSE on error.

Exemple

The following demonstrates how you can separate connections.

Example #1 oci_new_connect() example

<?php

// create table mytab (mycol number);

function query($name$c)
{
    echo 
"Querying $name\n";
    
$s oci_parse($c"select * from mytab");
    
oci_execute($sOCI_NO_AUTO_COMMIT);
    
$row oci_fetch_array($sOCI_ASSOC);
    if (!
$row) {
        echo 
"No rows\n";
    } else {
        do {
            foreach (
$row as $item)
                echo 
$item " ";
            echo 
"\n";
        } while ((
$row oci_fetch_array($sOCI_ASSOC)) != false);
    }
}

$c1 oci_connect("hr""welcome""localhost/orcl");
$c2 oci_new_connect("hr""welcome""localhost/orcl");

$s oci_parse($c1"insert into mytab values(1234)");
oci_execute($sOCI_NO_AUTO_COMMIT);

query("basic connection"$c1);
query("new connection"$c2);
oci_commit($c1);
query("new connection after commit"$c2);

// Output is:
//   Querying basic connection
//   1234 
//   Querying new connection
//   No rows
//   Querying new connection after commit
//   1234 

?>

See oci_connect() for further examples of parameter usage.

A se vedea și