<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.oci-pconnect.php',
    1 => 'oci_pconnect',
    2 => 'Ouvre une connexion persistante &agrave; un serveur Oracle',
  ),
  'up' => 
  array (
    0 => 'ref.oci8.php',
    1 => 'Fonctions 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' => 'fr',
    '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">Ouvre une connexion persistante à un serveur Oracle</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.oci-pconnect-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <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">
   Ouvre une connexion persistante à un serveur Oracle et s&#039;identifie.
  </p>
  <p class="para">
   Les connexions persistantes sont mises en cache et sont réutilisées
   entre les requêtes, réduisant ainsi la charge à chaque chargement de la page ;
   une application PHP typique a une seule connexion persistante à un serveur Oracle
   par processus enfant Apache (ou processus PHP FastCGI/CGI). Voir la section sur la
   <a href="oci8.connection.php" class="link">Gestion des Connexions et le Regroupement
    des Connexions</a> pour plus d&#039;informations.
  </p>
 </div>

 
 <div class="refsect1 parameters" id="refsect1-function.oci-pconnect-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">username</code></dt>
     <dd>
      <p class="para">
       Le nom d&#039;utilisateur Oracle.
      </p>
     </dd>
    
    
     <dt><code class="parameter">password</code></dt>
     <dd>
      <p class="para">
       Le mot de passe de l&#039;utilisateur.
      </p>
     </dd>
    
    
     <dt><code class="parameter">connection_string</code></dt>
     <dd>
      <p class="para">
Contient l&#039;instance <code class="literal">Oracle</code> sur laquelle nous devons nous connecter.
Ce peut être une <a href="https://www.oracle.com/pls/topic/lookup?ctx=dblatest&id=GUID-E5358DEA-D619-4B7B-A799-3D2F802500F1" class="link external">&raquo;&nbsp;chaîne de connexion
    rapide</a>, un nom de connexion issue du fichier <var class="filename">tnsnames.ora</var>,
ou le nom d&#039;une instance locale Oracle.</p>
<p class="para">Si non spécifié ou <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, PHP utilise des
variables d&#039;environnement comme <strong><code>TWO_TASK</code></strong> (sous Linux)
ou <strong><code>LOCAL</code></strong> (sous Windows)
et <strong><code>ORACLE_SID</code></strong> pour déterminer l&#039;instance
<code class="literal">Oracle</code> sur laquelle nous devons nous connecter.
</p>
<p class="para">
Pour utiliser la méthode de connexion rapide, PHP doit être lié avec la bibliothèque
cliente Oracle 10<em>g</em> ou supérieur. La chaîne de connexion rapide pour Oracle
10<em>g</em> ou supérieur est de la forme :
<em>[//]host_name[:port][/service_name]</em>. Depuis Oracle
11<em>g</em>, la syntaxe est :
<em>[//]host_name[:port][/service_name][:server_type][/instance_name]</em>.
 Des options supplémentaires ont été introduit avec Oracle 19c
Les noms des services peuvent être trouvés en exécutant l&#039;utilitaire
Oracle <code class="literal">lsnrctl status</code> sur la machine exécutant
la base de données.
</p>
<p class="para">
Le fichier <var class="filename">tnsnames.ora</var> peut être dans le chemin
de recherche d&#039;Oracle Net, qui inclut
<var class="filename">/your/path/to/instantclient/network/admin</var>, <var class="filename">$ORACLE_HOME/network/admin</var>
et <var class="filename">/etc</var>.
Une solution alternative serait de définit <code class="literal">TNS_ADMIN</code>
afin que le fichier <var class="filename">$TNS_ADMIN/tnsnames.ora</var> soit lu.
Assurez-vous que le daemon exécutant le serveur web a accès en lecture à ce
fichier.
</p>
     </dd>
    
    
     <dt><code class="parameter">encoding</code></dt>
     <dd>
      <p class="para">Détermine
le jeu de caractères utilisé par la bibliothèque cliente Oracle. Le jeu de
caractères n&#039;a pas besoin d&#039;être identique à celui utilisé par la base de données.
S&#039;il ne correspond pas, Oracle ferait de son mieux pour convertir les données
depuis le jeu de caractères de la base de données. Suivant les jeux de caractères,
il se peut que le résultat ne soit pas parfait. De plus, cette conversion
nécessite un peu de temps système.
</p>
<p class="para">Si non spécifié, la bibliothèque
cliente Oracle déterminera un jeu de caractères depuis la variable d&#039;environnement
<strong><code>NLS_LANG</code></strong>.
</p>
<p class="para">Le fait de passer ce paramètre peut
réduire la durée de connexion.
</p>
     </dd>
    
    
     <dt><code class="parameter">session_mode</code></dt>
     <dd>
      <p class="para">Ce paramètre
est disponible à partir de PHP 5 (PECL OCI8 1.1) et accepte les valeurs suivantes :
<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> et
<strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong>.
Si soit la constante <strong><code><a href="oci8.constants.php#constant.oci-sysoper">OCI_SYSOPER</a></code></strong>, soit la constante
<strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong> est spécifiée, cette fonction tentera d&#039;établir
une connexion privilégiée en utilisant des identifiants externes. Les
connexions privilégiées sont désactivées par défault. Pour les activer, vous
devez définir l&#039;option <a href="oci8.configuration.php#ini.oci8.privileged-connect" class="link">oci8.privileged_connect</a>
à <code class="literal">On</code>.
</p>
<p class="para">
PHP 5.3 (PECL OCI8 1.3.4) introduisent la valeur de mode
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong>. Ce mode demande à Oracle d&#039;utiliser une
identification externe ou bien issue du système d&#039;exploitation, qui doit être
configurée dans la base de données. Le drapeau <strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong>
ne peut être utilisé qu&#039;avec le nom d&#039;utilisateur &quot;/&quot; associé à un
mot de passe vide.
L&#039;option <a href="oci8.configuration.php#ini.oci8.privileged-connect" class="link">oci8.privileged_connect</a>
peut être définie à <code class="literal">On</code> ou <code class="literal">Off</code>.
</p>
<p class="para">
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong> peut être combiné avec le mode
<strong><code><a href="oci8.constants.php#constant.oci-sysoper">OCI_SYSOPER</a></code></strong> ou le mode
<strong><code><a href="oci8.constants.php#constant.oci-sysdba">OCI_SYSDBA</a></code></strong>.
</p>
<p class="para">
<strong><code><a href="oci8.constants.php#constant.oci-cred-ext">OCI_CRED_EXT</a></code></strong> n&#039;est pas supporté sous Windows pour des
raisons de sécurité.
</p>
     </dd>
    
   </dl>
  </p>
 </div>

 
 <div class="refsect1 returnvalues" id="refsect1-function.oci-pconnect-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   Retourne un identifiant de connexion, ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> si une erreur survient.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.oci-pconnect-examples">
  <h3 class="title">Exemples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemple #1 Exemple avec <span class="function"><strong>oci_pconnect()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #FF8000">// Connexion au service XE (i.e. base de données) sur la machine "localhost"<br /></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">);<br />if (!</span><span style="color: #0000BB">$conn</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$e </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_error</span><span style="color: #007700">();<br />    </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">);<br />}<br /><br /></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">);<br /></span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stid</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"&lt;table border='1'&gt;\n"</span><span style="color: #007700">;<br />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">)) {<br />    echo </span><span style="color: #DD0000">"&lt;tr&gt;\n"</span><span style="color: #007700">;<br />    foreach (</span><span style="color: #0000BB">$row </span><span style="color: #007700">as </span><span style="color: #0000BB">$item</span><span style="color: #007700">) {<br />        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">;<br />    }<br />    echo </span><span style="color: #DD0000">"&lt;/tr&gt;\n"</span><span style="color: #007700">;<br />}<br />echo </span><span style="color: #DD0000">"&lt;/table&gt;\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   Voir la fonction <span class="function"><a href="function.oci-connect.php" class="function">oci_connect()</a></span> pour plus d&#039;exemples sur l&#039;utilisation
   de ce paramètre.
  </p>
 </div>

 
 <div class="refsect1 notes" id="refsect1-function.oci-pconnect-notes">
  <h3 class="title">Notes</h3>
  <blockquote class="note"><p><strong class="note">Note</strong>: 
   <span class="simpara">
    La durée de vie ainsi que le nombre maximal
    de connexions persistantes Oracle par processus PHP peuvent être affinés en
    définissant les valeurs de configuration suivantes : <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> et
    <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">Voir aussi</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> - &Eacute;tablit une connexion avec un serveur Oracle</span></li>
    <li><span class="function"><a href="function.oci-new-connect.php" class="function" rel="rdfs-seeAlso">oci_new_connect()</a> - Connexion au serveur Oracle en utilisant une seule connexion</span></li>
   </ul>
  </p>
 </div>

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