OCI8 Funciones
PHP Manual

oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connectConnect to the Oracle server using a unique connection

Descripción

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

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.

Parámetros

username

The Oracle user name.

password

The password for username.

connection_string

Contiene la Instancia Oracle a conectarse. Puede ser una » Cadena de fácil conexión, o un Nombre de Conexión del fichero tnsnames.ora, o del nombre de una instancia local de Oracle.

Si no se especifica, PHP utiliza variables de entorno como TWO_TASK (en Linux) o LOCAL (en Windows) y ORACLE_SID para determinar la instancia Oracle a conectarse.

Para utilizar el método de conexión fácil de nomenclatura, PHP debe estar enlazado con Oracle con las librerias de cliente 10g o superiores. La cadena de fácil conexión para Oracle de 10g se usa de la siguiente forma: [//]host_name[:port][/service_name]. Con Oracle 11g, la sintaxis es: [//]host_name[:port][/service_name][:server_type][/instance_name]. Los nombres de servicio pueden encontrarse ejecuntado la utilidad de Oracle lsnrctl status en el servidor donde está la base de datos.

El fichero tnsnames.ora puede estar en la ruta de búsqueda de la red de Oracle, que incluye $ORACLE_HOME/network/admin y /etc. De forma alternativa define TNS_ADMIN para que $TNS_ADMIN/tnsnames.ora sea leído. Asegúrse que el dominio web tiene acceso de lectura al fichero.

character_set

Determina el juego de caracteres usado por las librerías cliente de Oracle. El juego de caracteres no tiene porque coinicidir con el que está definido en la base de datos. Si no coinicide, Oracle intentará hacer lo posible para convertir los datos en el juego de caracteres de la base de datos. Dependiendo del tipo de juego de caracteres que se este usando puede no dar resultados útiles. La conversión también añade sobrecarga en el tiempo.

Si no es especificado, las librerias cliente de Oracle determinan el juego de caracteres desde la variable global NLS_LANG.

Pasar este parámetro puede reducir tiempo de conexión.

session_mode

Este parámetro está disponible desde la versión PHP 5 (PECL OCI8 1.1) y acepta los siguientes valores: OCI_DEFAULT, OCI_SYSOPER y OCI_SYSDBA. Si cualquiera de OCI_SYSOPER o OCI_SYSDBA son especificados, esta función intentará establecer una conexión privilegiada con las credenciales exteriores. Las conexiones privilegiadas están desactivadas por defecto. Para activarlas tiene que establecer oci8.privileged_connect a On.

En PHP 5.3 (PECL OCI8 1.3.4) se introdujo el modo valor OCI_CRED_EXT. Esto indica a Oracle usar External o autenticación OS , que debe estar configurado en la base de datos. La flag OCI_CRED_EXT sólo puede ser usada con el nombre de usuario "/" y la contraseña en blanco. oci8.privileged_connect puede que esté On o Off.

OCI_CRED_EXT puede que esté en combinación con los modos OCI_SYSOPER o OCI_SYSDBA.

OCI_CRED_EXT no está soportado en Windows por razones de seguridad.

Valores devueltos

Returns a connection identifier or FALSE on error.

Ejemplos

The following demonstrates how you can separate connections.

Ejemplo #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($stmtOCI_DEFAULT);
  echo 
$conn " inserted hallo\n\n";
}

function 
delete_data($conn)
{
  
$stmt oci_parse($conn"delete from scott.hallo");
  
oci_execute($stmtOCI_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($stmtOCI_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>";
?>

Notas

Nota:

In PHP versions before 5.0.0 you must use ocinlogon() instead. El nombre viejo de la función todavía puede ser utilizado en versiones actuales, sin embargo es obsoleto y no se recomienda.

Ver también


OCI8 Funciones
PHP Manual