<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.pgsql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.pg-trace.php',
    1 => 'pg_trace',
    2 => 'Active le suivi d\'une connexion PostgreSQL',
  ),
  'up' => 
  array (
    0 => 'ref.pgsql.php',
    1 => 'pg_cancel_query',
  ),
  'prev' => 
  array (
    0 => 'function.pg-socket.php',
    1 => 'pg_socket',
  ),
  'next' => 
  array (
    0 => 'function.pg-transaction-status.php',
    1 => 'pg_transaction_status',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/pgsql/functions/pg-trace.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.pg-trace" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">pg_trace</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.1, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">pg_trace</span> &mdash; <span class="dc-title">
   Active le suivi d&#039;une connexion PostgreSQL
  </span></p>

 </div>
 
 <div class="refsect1 description" id="refsect1-function.pg-trace-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>pg_trace</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">$filename</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">$mode</code><span class="initializer"> = &quot;w&quot;</span></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="class.pgsql-connection.php" class="type PgSql\Connection">PgSql\Connection</a></span></span> <code class="parameter">$connection</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.integer.php" class="type int">int</a></span> <code class="parameter">$trace_mode</code><span class="initializer"> = 0</span></span><br>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>pg_trace()</strong></span> active le suivi des communications entre PHP et
   le serveur PostgreSQL. Cet historique sera enregistré dans un fichier.
   Pour comprendre ces lignes, il faut être familier avec le protocole
   de communication interne à PostgreSQL.
  </p>
  <p class="para">   
   Pour ceux qui le ne sont pas, elles peuvent être utiles pour suivre les
   requêtes et les erreurs : avec la commande
   <strong class="command">grep &#039;^To backend&#039; trace.log</strong>, il sera possible de voir les
   requêtes réellement envoyées au serveur PostgreSQL. Pour plus
   d&#039;informations, se référer à la 
   <a href="http://www.postgresql.org/docs/current/interactive/" class="link external">&raquo;&nbsp;Documentation PostgreSQL</a>.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.pg-trace-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">filename</code></dt>
     <dd>
      <p class="para">
       Le chemin complet et le nom du fichier dans lequel le suivi sera
       enregistré. Comme <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">mode</code></dt>
     <dd>
      <p class="para">
       Le mode d&#039;accès optionnel, comme <span class="function"><a href="function.fopen.php" class="function">fopen()</a></span>.
      </p>
     </dd>
    
    
     <dt><code class="parameter">connection</code></dt>
     <dd>
      <p class="para">
 Une instance <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span>.
 Quand <code class="parameter">connection</code> est <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>, la connexion par défaut est utilisé.
 La connexion par défaut est la dernière connexion faite par
 <span class="function"><a href="function.pg-connect.php" class="function">pg_connect()</a></span> ou <span class="function"><a href="function.pg-pconnect.php" class="function">pg_pconnect()</a></span>
 <div class="warning"><strong class="warning">Avertissement</strong><p class="simpara">À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.</p></div>
 </p>
     </dd>
    
    
     <dt><code class="parameter">trace_mode</code></dt>
     <dd>
      <p class="para">
       Un mode de trace facultatif avec les constantes suivantes :
       <strong><code><a href="pgsql.constants.php#constant.pgsql-trace-suppress-timestamps">PGSQL_TRACE_SUPPRESS_TIMESTAMPS</a></code></strong> et
       <strong><code><a href="pgsql.constants.php#constant.pgsql-trace-regress-mode">PGSQL_TRACE_REGRESS_MODE</a></code></strong>
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.pg-trace-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   Cette fonction retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> en cas de succès 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.pg-trace-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.3.0</td>
      <td>
       <code class="parameter">trace_mode</code> a été ajouté.
      </td>
     </tr>

     <tr>
 <td>8.1.0</td>
 <td>
  Le paramètre <code class="parameter">connection</code> attend désormais une instance de
  <span class="classname"><a href="class.pgsql-connection.php" class="classname">PgSql\Connection</a></span> ; auparavant, une <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> était attendu.
 </td>
</tr>

     <tr>
      <td>8.0.0</td>
      <td>
       <code class="parameter">connection</code> est désormais nullable.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 
 <div class="refsect1 examples" id="refsect1-function.pg-trace-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>pg_trace()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$pgsql_conn </span><span style="color: #007700">= </span><span style="color: #0000BB">pg_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"dbname=mark host=localhost"</span><span style="color: #007700">);<br /><br />if (</span><span style="color: #0000BB">$pgsql_conn</span><span style="color: #007700">) {<br />   </span><span style="color: #0000BB">pg_trace</span><span style="color: #007700">(</span><span style="color: #DD0000">'/tmp/trace.log'</span><span style="color: #007700">, </span><span style="color: #DD0000">'w'</span><span style="color: #007700">, </span><span style="color: #0000BB">$pgsql_conn</span><span style="color: #007700">);<br />   </span><span style="color: #0000BB">pg_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT 1"</span><span style="color: #007700">);<br />   </span><span style="color: #0000BB">pg_untrace</span><span style="color: #007700">(</span><span style="color: #0000BB">$pgsql_conn</span><span style="color: #007700">);<br />   </span><span style="color: #FF8000">// Maintenant /tmp/trace.log contiendra le suivi des communications<br /></span><span style="color: #007700">} else {<br />   print </span><span style="color: #0000BB">pg_last_error</span><span style="color: #007700">(</span><span style="color: #0000BB">$pgsql_conn</span><span style="color: #007700">);<br />   exit;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>

 
 <div class="refsect1 seealso" id="refsect1-function.pg-trace-seealso">
  <h3 class="title">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.fopen.php" class="function" rel="rdfs-seeAlso">fopen()</a> - Ouvre un fichier ou une URL</span></li>
    <li><span class="function"><a href="function.pg-untrace.php" class="function" rel="rdfs-seeAlso">pg_untrace()</a> - Termine le suivi d'une connexion PostgreSQL</span></li>
   </ul>
  </p>
 </div>

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