<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.oci8.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.oci-pconnect.php',
    1 => 'oci_pconnect',
    2 => 'Establece una conexi&oacute;n persistente a un servidor Oracle',
  ),
  'up' => 
  array (
    0 => 'ref.oci8.php',
    1 => 'Funciones de OCI8',
  ),
  'prev' => 
  array (
    0 => 'function.oci-password-change.php',
    1 => 'oci_password_change',
  ),
  'next' => 
  array (
    0 => 'function.oci-register-taf-callback.php',
    1 => 'oci_register_taf_callback',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/oci8/functions/oci-pconnect.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.oci-pconnect" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">oci_pconnect</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8, PECL OCI8 &gt;= 1.1.0)</p><p class="refpurpose"><span class="refname">oci_pconnect</span> &mdash; <span class="dc-title">Establece una conexión persistente a un servidor Oracle</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.oci-pconnect-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">function</span> <span class="methodname"><strong>oci_pconnect</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$username</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$password</code></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.string.php" class="type string">string</a></span></span> <code class="parameter">$connection_string</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$encoding</code><span class="initializer"> = &quot;&quot;</span></span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$session_mode</code><span class="initializer"> = <strong><code><a href="oci8.constants.php#constant.oci-default">OCI_DEFAULT</a></code></strong></span></span><br>): <span class="type"><span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="para rdfs-comment">
   Establece una conexión persistente a un servidor Oracle y se identifica.
  </p>
  <p class="para">
   Las conexiones persistentes se almacenan en caché y se reutilizan
   entre las consultas, reduciendo así la carga en cada carga de página;
   una aplicación PHP típica tiene una sola conexión persistente a un servidor Oracle
   por proceso hijo Apache (o proceso PHP FastCGI/CGI). Ver la sección sobre la
   <a href="oci8.connection.php" class="link">Gestión de Conexiones y el Agrupamiento
    de Conexiones</a> para más información.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.oci-pconnect-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">username</code></dt>
     <dd>
      <p class="para">
       El nombre de usuario de Oracle.
      </p>
     </dd>
    
    
     <dt><code class="parameter">password</code></dt>
     <dd>
      <p class="para">
       La contraseña del usuario.
      </p>
     </dd>
    
    
     <dt><code class="parameter">connection_string</code></dt>
     <dd>
      <span class="simpara"> Contiene la
instancia <code class="literal">Oracle</code> a la que debemos conectarnos. Esto puede ser
una <a href="https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-E5358DEA-D619-4B7B-A799-3D2F802500F1" class="link external">&raquo;&nbsp;cadena de conexión
rápida</a>, un nombre de conexión del
fichero <var class="filename">tnsnames.ora</var>, o el nombre de una instancia
local Oracle.
</span>
<span class="simpara">Si no se especifica o es <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, PHP
utiliza variables de entorno como <strong><code>TWO_TASK</code></strong> (en Linux)
o <strong><code>LOCAL</code></strong> (en Windows)
y <strong><code>ORACLE_SID</code></strong> para determinar la instancia
<code class="literal">Oracle</code> a la que debemos conectarnos.
</span>
<span class="simpara">
Para usar el método de conexión rápida, PHP debe estar vinculado con la biblioteca cliente Oracle
10<em>g</em> o superior. La cadena de conexión rápida para Oracle
10<em>g</em> o superior es de la forma:
<em>[//]host_name[:port][/service_name]</em>. Desde Oracle
11<em>g</em>, la sintaxis es:
<em>[//]host_name[:port][/service_name][:server_type][/instance_name]</em>.
Opciones adicionales fueron introducidas con Oracle 19c Los
nombres de los servicios pueden ser encontrados ejecutando la
utilidad Oracle <code class="literal">lsnrctl status</code> en la máquina que ejecuta la base
de datos.
</span>
<span class="simpara">
El fichero <var class="filename">tnsnames.ora</var> puede estar en el camino de búsqueda de Oracle Net,
que
incluye <var class="filename">/your/path/to/instantclient/network/admin</var>, <var class="filename">$ORACLE_HOME/network/admin</var>
y <var class="filename">/etc</var>. Una solución alternativa sería definir <code class="literal">TNS_ADMIN</code>
para que el fichero <var class="filename">$TNS_ADMIN/tnsnames.ora</var> sea leído. Asegúrese de que el demonio que ejecuta
el servidor web tenga acceso de lectura a este fichero.
</span>
     </dd>
    
    
     <dt><code class="parameter">encoding</code></dt>
     <dd>
      <span class="simpara">Determina
el juego de caracteres utilizado por la biblioteca cliente Oracle. El juego de
caracteres no necesita ser idéntico al utilizado por la base de datos. Si no coincide, Oracle
hará lo mejor posible para convertir los datos desde el juego de caracteres de la base
de datos. Dependiendo de los juegos de caracteres, el resultado puede no ser
perfecto. Además, esta conversión requiere un poco de tiempo del sistema.
</span>
<span class="simpara">Si no se especifica, la biblioteca
cliente Oracle determinará un juego de caracteres desde la variable de
entorno <strong><code>NLS_LANG</code></strong>.
</span>
<span class="simpara">Pasar este parámetro puede
reducir el tiempo de conexión.
</span>
     </dd>
    
    
     <dt><code class="parameter">session_mode</code></dt>
     <dd>
      <span class="simpara">Este
parámetro está disponible a partir de PHP 5 (PECL OCI8 1.1) y acepta los
siguientes valores: <strong><code><a href="oci8.constants.php#constant.oci-default">OCI_DEFAULT</a></code></strong>,
<strong><code><a href="oci8.constants.php#constant.oci-sysoper">OCI_SYSOPER</a></code></strong> y <strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong>. Si
bien la constante <strong><code><a href="oci8.constants.php#constant.oci-sysoper">OCI_SYSOPER</a></code></strong> o la constante
<strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong> es especificada, esta función intentará establecer
una conexión privilegiada usando identidades externas.
Las conexiones privilegiadas están desactivadas por defecto. Para activarlas, debe
definir la opción <a href="oci8.configuration.php#ini.oci8.privileged-connect" class="link">oci8.privileged_connect</a>
a <code class="literal">On</code>.
</span>
<span class="simpara">
PHP 5.3 (PECL OCI8 1.3.4) introducen el valor de modo
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong>. Este modo solicita a Oracle usar una identificación externa
o bien del sistema operativo, que debe ser configurada en la base de
datos. El flag <strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong> solo puede ser usado con el nombre
de usuario &quot;/&quot; asociado a una contraseña vacía. La opción
<a href="oci8.configuration.php#ini.oci8.privileged-connect" class="link">oci8.privileged_connect</a>
puede ser definida a <code class="literal">On</code> o <code class="literal">Off</code>.
</span>
<span class="simpara">
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong> puede ser combinado con el modo
<strong><code><a href="oci8.constants.php#constant.oci-sysoper">OCI_SYSOPER</a></code></strong> o el modo
<strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong>.
</span>
<span class="simpara">
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong> no es soportado en Windows por razones
de seguridad.
</span>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.oci-pconnect-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve un identificador de conexión, o <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si ocurre un error.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.oci-pconnect-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo con <span class="function"><strong>oci_pconnect()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php

</span><span style="color: #FF8000">// Conexión al servicio XE (i.e. base de datos) en la máquina "localhost"
</span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_pconnect</span><span style="color: #007700">(</span><span style="color: #DD0000">'hr'</span><span style="color: #007700">, </span><span style="color: #DD0000">'welcome'</span><span style="color: #007700">, </span><span style="color: #DD0000">'localhost/XE'</span><span style="color: #007700">);
if (!</span><span style="color: #0000BB">$conn</span><span style="color: #007700">) {
    </span><span style="color: #0000BB">$e </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_error</span><span style="color: #007700">();
    </span><span style="color: #0000BB">trigger_error</span><span style="color: #007700">(</span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">[</span><span style="color: #DD0000">'message'</span><span style="color: #007700">], </span><span style="color: #0000BB">ENT_QUOTES</span><span style="color: #007700">), </span><span style="color: #0000BB">E_USER_ERROR</span><span style="color: #007700">);
}

</span><span style="color: #0000BB">$stid </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">'SELECT * FROM employees'</span><span style="color: #007700">);
</span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stid</span><span style="color: #007700">);

echo </span><span style="color: #DD0000">"&lt;table border='1'&gt;\n"</span><span style="color: #007700">;
while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_fetch_array</span><span style="color: #007700">(</span><span style="color: #0000BB">$stid</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_ASSOC</span><span style="color: #007700">+</span><span style="color: #0000BB">OCI_RETURN_NULLS</span><span style="color: #007700">)) {
    echo </span><span style="color: #DD0000">"&lt;tr&gt;\n"</span><span style="color: #007700">;
    foreach (</span><span style="color: #0000BB">$row </span><span style="color: #007700">as </span><span style="color: #0000BB">$item</span><span style="color: #007700">) {
        echo </span><span style="color: #DD0000">"    &lt;td&gt;" </span><span style="color: #007700">. (</span><span style="color: #0000BB">$item </span><span style="color: #007700">!== </span><span style="color: #0000BB">null </span><span style="color: #007700">? </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$item</span><span style="color: #007700">, </span><span style="color: #0000BB">ENT_QUOTES</span><span style="color: #007700">) : </span><span style="color: #DD0000">""</span><span style="color: #007700">) . </span><span style="color: #DD0000">"&lt;/td&gt;\n"</span><span style="color: #007700">;
    }
    echo </span><span style="color: #DD0000">"&lt;/tr&gt;\n"</span><span style="color: #007700">;
}
echo </span><span style="color: #DD0000">"&lt;/table&gt;\n"</span><span style="color: #007700">;

</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

   </div>
  </p>
  <p class="para">
   Ver la función <span class="function"><a href="function.oci-connect.php" class="function">oci_connect()</a></span> para más ejemplos sobre el uso
   de este parámetro.
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.oci-pconnect-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    La duración y el número máximo
    de conexiones persistentes Oracle por proceso PHP pueden ajustarse
    definiendo los siguientes valores de configuración: <a href="oci8.configuration.php#ini.oci8.persistent-timeout" class="link">oci8.persistent_timeout</a>,
    <a href="oci8.configuration.php#ini.oci8.ping-interval" class="link">oci8.ping_interval</a> y
    <a href="oci8.configuration.php#ini.oci8.max-persistent" class="link">oci8.max_persistent</a>.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.oci-pconnect-seealso">
  <h3 class="title">Véase también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.oci-connect.php" class="function" rel="rdfs-seeAlso">oci_connect()</a> - Establece una conexi&oacute;n con un servidor Oracle</span></li>
    <li><span class="function"><a href="function.oci-new-connect.php" class="function" rel="rdfs-seeAlso">oci_new_connect()</a> - Conexi&oacute;n al servidor Oracle utilizando una sola conexi&oacute;n</span></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>