<?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-new-connect.php',
    1 => 'oci_new_connect',
    2 => 'Connexion au serveur Oracle en utilisant une seule connexion',
  ),
  'up' => 
  array (
    0 => 'ref.oci8.php',
    1 => 'Fonctions OCI8',
  ),
  'prev' => 
  array (
    0 => 'function.oci-new-collection.php',
    1 => 'oci_new_collection',
  ),
  'next' => 
  array (
    0 => 'function.oci-new-cursor.php',
    1 => 'oci_new_cursor',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/oci8/functions/oci-new-connect.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.oci-new-connect" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">oci_new_connect</h1>
  <p class="verinfo">(PHP 5, PHP 7, PHP 8, PECL OCI8 &gt;= 1.1.0)</p><p class="refpurpose"><span class="refname">oci_new_connect</span> &mdash; <span class="dc-title">Connexion au serveur Oracle en utilisant une seule connexion</span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.oci-new-connect-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>oci_new_connect</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">
   Établit une nouvelle connexion au serveur Oracle et s&#039;identifie.
  </p>
  <p class="para">
   Contrairement aux fonctions <span class="function"><a href="function.oci-connect.php" class="function">oci_connect()</a></span> et
   <span class="function"><a href="function.oci-pconnect.php" class="function">oci_pconnect()</a></span>, <span class="function"><strong>oci_new_connect()</strong></span>
   ne met pas en cache les connexions et retourne toujours un gestionnaire de connexion
   nouvellement ouvert. Ceci est très utile si l&#039;application a besoin d&#039;une isolation
   transactionnelle entre deux jeux de requêtes.
  </p>
 </div>

 
 <div class="refsect1 parameters" id="refsect1-function.oci-new-connect-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 pour 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-new-connect-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 changelog" id="refsect1-function.oci-new-connect-changelog">
  <h3 class="title">Historique</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Version</th>
      <th>Description</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.0.0, PECL OCI8 3.0.0</td>
      <td>
       <code class="parameter">connection_string</code> est désormais nullable.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 
 <div class="refsect1 examples" id="refsect1-function.oci-new-connect-examples">
  <h3 class="title">Exemples</h3>
  <p class="para">
   Voici comment séparer des transactions.
   <div class="example" id="example-1">
    <p><strong>Exemple #1 Exemple avec <span class="function"><strong>oci_new_connect()</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">// Création de la table mytab (mycol number);<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$c</span><span style="color: #007700">)<br />{<br />    echo </span><span style="color: #DD0000">"Querying </span><span style="color: #0000BB">$name</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$s </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$c</span><span style="color: #007700">, </span><span style="color: #DD0000">"select * from mytab"</span><span style="color: #007700">);<br />    </span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$s</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_NO_AUTO_COMMIT</span><span style="color: #007700">);<br />    </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">$s</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_ASSOC</span><span style="color: #007700">);<br />    if (!</span><span style="color: #0000BB">$row</span><span style="color: #007700">) {<br />        echo </span><span style="color: #DD0000">"No rows\n"</span><span style="color: #007700">;<br />    } else {<br />        do {<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: #0000BB">$item </span><span style="color: #007700">. </span><span style="color: #DD0000">" "</span><span style="color: #007700">;<br />            echo </span><span style="color: #DD0000">"\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">$s</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_ASSOC</span><span style="color: #007700">)) != </span><span style="color: #0000BB">false</span><span style="color: #007700">);<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$c1 </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_connect</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/orcl"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$c2 </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_new_connect</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/orcl"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$s </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$c1</span><span style="color: #007700">, </span><span style="color: #DD0000">"insert into mytab values(1234)"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$s</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_NO_AUTO_COMMIT</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"basic connection"</span><span style="color: #007700">, </span><span style="color: #0000BB">$c1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"new connection"</span><span style="color: #007700">, </span><span style="color: #0000BB">$c2</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">oci_commit</span><span style="color: #007700">(</span><span style="color: #0000BB">$c1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"new connection after commit"</span><span style="color: #007700">, </span><span style="color: #0000BB">$c2</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Affiche :<br />//   Querying basic connection<br />//   1234 <br />//   Querying new connection<br />//   No rows<br />//   Querying new connection after commit<br />//   1234 <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 seealso" id="refsect1-function.oci-new-connect-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-pconnect.php" class="function" rel="rdfs-seeAlso">oci_pconnect()</a> - Ouvre une connexion persistante &agrave; un serveur Oracle</span></li>
   </ul>
  </p>
 </div>

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