(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_new_connect — Connect to the Oracle server using a unique connection
$username,$password,$connection_string = null,$encoding = "",$session_mode = OCI_DEFAULTEstablishes 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.
usernameThe Oracle user name.
password
The password for username.
connection_stringContiene
l'istanza Oracle a cui collegarsi. Può essere
una » stringa Easy
Connect, oppure un Connect Name dal
file tnsnames.ora, o il nome di una
istanza Oracle locale.
Se non è specificato, PHP usa
le variabili d'ambiente come TWO_TASK (su Linux)
o LOCAL (su Windows)
e ORACLE_SID per determinare
l'istanza Oracle a cui collegarsi.
Per utilizzare il metodo Easy Connect, PHP deve essere linkato con le librerie Client di Oracle
10g o successivi. La stringa Easy Connect per Oracle
10g ha la forma:
[//]host_name[:port][/service_name]. Con Oracle
11g, ha la forma:
[//]host_name[:port][/service_name][:server_type][/instance_name].
I nomi dei servizi possono essere trovati eseguendo l'applicazione
di Oracle lsnrctl status sul server contenente il
database.
Il file tnsnames.ora può essere nel percorso di ricerca
Oracle Net, che
include $ORACLE_HOME/network/admin
e /etc. In alternativa
si imposti TNS_ADMIN in modo
che $TNS_ADMIN/tnsnames.ora sia letto. Assicurarsi
che il dameon web abbia accesso in lettura al file.
encodingDetermina il set di caratteri utilizzato dalle librerie Client di Oracle. Non è necessario che il set di caratteri corrisponda a quello usato dal database. Se non corrisponde, Oracle fara il suo meglio per convertire i dati da e verso il set di caratteri del database. A seconda del set di caratteri, ciò potrebbe dare risultati non utilizzabili. La conversione inoltre inecessita di tempo aggiuntivo.
Se non specificato, le
librerie Client di Oracle determinano un set di caratteri dalla
variabile d'ambiente NLS_LANG.
Fornire questo parametro può ridurre il tempo di connessione.
session_modeQuesto
parametro è disponibile da PHP 5 (PECL OCI8 1.1) e accetta i
seguenti valori: OCI_DEFAULT,
OCI_SYSOPER e OCI_SYSDBA.
Se OCI_SYSOPER o
OCI_SYSDBA sono specificate, questa funzione tenta
di creare connessioni privilegiate usando delle credenziali esterne.
Le connessioni privilegiate sono disabilitate per default. Per abilitarle
occorre impostare oci8.privileged_connect
a On.
PHP 5.3 (PECL OCI8 1.3.4) ha introdotto il
valore OCI_CRED_EXT. Questo dice ad Oracle di usare
l'autenticazione esterna o del Sistema Operativo, che deve essere configurata nel
database. Il flag OCI_CRED_EXT può essere usato solo con
username "/" e una password vuota.
oci8.privileged_connect
può essere On oppure Off.
OCI_CRED_EXT può essere combinato ai modi
OCI_SYSOPER o
OCI_SYSDBA.
OCI_CRED_EXT non è ammessa su Windows per
ragioni di sicurezza.
Returns a connection identifier or false on error.
| Versione | Descrizione |
|---|---|
| 8.0.0, PECL OCI8 3.0.0 |
connection_string is now nullable.
|
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($s, OCI_NO_AUTO_COMMIT);
$row = oci_fetch_array($s, OCI_ASSOC);
if (!$row) {
echo "No rows\n";
} else {
do {
foreach ($row as $item)
echo $item . " ";
echo "\n";
} while (($row = oci_fetch_array($s, OCI_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($s, OCI_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.