<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.pdostatement.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'pdostatement.fetch.php',
    1 => 'PDOStatement::fetch',
    2 => 'R&eacute;cup&egrave;re la ligne suivante d\'un jeu de r&eacute;sultats PDO',
  ),
  'up' => 
  array (
    0 => 'class.pdostatement.php',
    1 => 'PDOStatement',
  ),
  'prev' => 
  array (
    0 => 'pdostatement.execute.php',
    1 => 'PDOStatement::execute',
  ),
  'next' => 
  array (
    0 => 'pdostatement.fetchall.php',
    1 => 'PDOStatement::fetchAll',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/pdo/pdostatement/fetch.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pdostatement.fetch" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">PDOStatement::fetch</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.1.0, PHP 7, PHP 8, PECL pdo &gt;= 0.1.0)</p><p class="refpurpose"><span class="refname">PDOStatement::fetch</span> &mdash; <span class="dc-title">
   Récupère la ligne suivante d&#039;un jeu de résultats PDO
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-pdostatement.fetch-description">
  <h3 class="title">Description</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>PDOStatement::fetch</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$mode</code><span class="initializer"> = <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-default">PDO::FETCH_DEFAULT</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$cursorOrientation</code><span class="initializer"> = <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-next">PDO::FETCH_ORI_NEXT</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$cursorOffset</code><span class="initializer"> = 0</span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>


  <p class="simpara">
   Récupère une ligne depuis un jeu de résultats associé à une instance de
   <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>.
   Le paramètre <code class="parameter">mode</code> détermine la façon dont PDO retourne la ligne.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-pdostatement.fetch-parameters">
  <h3 class="title">Liste de paramètres</h3>
  <dl>
   
    <dt><code class="parameter">mode</code></dt>
    <dd>
     <p class="para">
      Contrôle comment la prochaine ligne sera retournée à l&#039;appelant.
      Cette valeur doit être une des constantes
      <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-default">PDO::FETCH_<span class="replaceable">*</span></a></code></strong>,
      et par défaut, vaut la valeur de <strong><code><a href="pdo.constants.php#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong>
      (qui vaut par défaut la valeur de la constante <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong>).
      <ul class="itemizedlist">
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong> : retourne un tableau indexé par
         le nom de la colonne comme retourné dans le jeu de résultats.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong> : retourne un tableau de la même
         forme que <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong>,
         excepté que s&#039;il y a plusieurs colonnes avec le même nom,
         la valeur pointée par cette clé sera un tableau de toutes les valeurs
         de la ligne qui portent ce nom de colonne.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong> : retourne un tableau indexé par le
         numéro de la colonne comme retourné dans le jeu de résultats,
         en commençant à la colonne 0.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> : retourne un tableau indexé
         à la fois par le nom de la colonne et par son numéro, commençant à 0,
         comme retournés dans le jeu de résultats.
         Il s&#039;agit en pratique d&#039;une combinaison de
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong> et de
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong>.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-bound">PDO::FETCH_BOUND</a></code></strong> : retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> et assigne
         les valeurs des colonnes du jeu de résultats aux variables PHP auxquelles
         elles sont liées avec la méthode
         <span class="methodname"><a href="pdostatement.bindcolumn.php" class="methodname">PDOStatement::bindColumn()</a></span>.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong> : retourne une instance de
         <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span> dont les noms de propriétés correspondent
         aux noms des colonnes retournés dans le jeu de résultats.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> : retourne une nouvelle instance
         de la classe demandée. À moins que la classe n&#039;ait été définie avec
         <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span>, ce mode doit être
         combiné avec <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-classtype">PDO::FETCH_CLASSTYPE</a></code></strong>, auquel cas
         la classe à instancier est déterminée par la valeur de la
         première colonne.
        </p>
        <p class="simpara">
         Par défaut, l&#039;objet est initialisé en mappant les colonnes du jeu de
         résultats aux propriétés de la classe.
         Ce processus se produit <em>avant</em> l&#039;appel du constructeur,
         ce qui permet de peupler les propriétés indépendamment de leur visibilité
         ou de leur marqueur <code class="literal">readonly</code>, tant que
         le constructeur ne les initialise pas lui-même.

         Si une propriété n&#039;existe pas dans la classe, la méthode magique
         <a href="language.oop5.overloading.php#object.set" class="link">__set()</a>
         sera invoquée si elle existe ; sinon, une propriété publique
         dynamique sera créée.
        </p>
        <p class="simpara">
         Il est possible de modifier ce comportement en utilisant le drapeau
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> afin d&#039;appeler le
         constructeur <em>avant</em> que les propriétés ne soient peuplées.
        </p>
        <div class="caution"><strong class="caution">Attention</strong>
         <p class="simpara">
          Les valeurs des colonnes ne sont <em>pas</em> passées en arguments
          au constructeur, que <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> soit utilisé ou non.
          Seuls les arguments donnés à
          <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span> sont passés.
         </p>
        </div>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-into">PDO::FETCH_INTO</a></code></strong> : met à jour une instance existante
         de la classe demandée, en mappant les colonnes du jeu de résultats aux
         propriétés nommées de la classe.
        </p>
       </li>
       <li class="listitem">
        <p class="simpara">
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-lazy">PDO::FETCH_LAZY</a></code></strong> : combine
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> et
         <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong>,
         et retourne un objet <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span>
         qui crée les noms de propriété de l&#039;objet au fur et à mesure de leur accès.
        </p>
       </li>
      </ul>
     </p>
    </dd>
   
   
    <dt><code class="parameter">cursorOrientation</code></dt>
    <dd>
     <p class="simpara">
      Pour un objet <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> représentant un
      curseur scrollable, cette valeur détermine quelle ligne sera retournée
      à l&#039;appelant. Cette valeur doit être une des constantes
      <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-next">PDO::FETCH_ORI_<span class="replaceable">*</span></a></code></strong>,
      et par défaut, vaut <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-next">PDO::FETCH_ORI_NEXT</a></code></strong>.
      Pour demander un curseur scrollable pour l&#039;objet
      <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>,
      l&#039;attribut <strong><code><a href="pdo.constants.php#pdo.constants.attr-cursor">PDO::ATTR_CURSOR</a></code></strong> doit être défini à
      <strong><code><a href="pdo.constants.php#pdo.constants.cursor-scroll">PDO::CURSOR_SCROLL</a></code></strong> lorsque la requête SQL est
      préparée avec la fonction <span class="methodname"><a href="pdo.prepare.php" class="methodname">PDO::prepare()</a></span>.
     </p>
    </dd>
   
   
    <dt><code class="parameter">cursorOffset</code></dt>
    <dd>
     <p class="simpara">
      Si la valeur du paramètre <code class="parameter">cursorOrientation</code>
      est <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-abs">PDO::FETCH_ORI_ABS</a></code></strong>, cette valeur spécifie
      le numéro absolu de la ligne dans le jeu de résultats qui doit être
      récupérée.
     </p>
     <p class="simpara">
      Si la valeur du paramètre <code class="parameter">cursorOrientation</code>
      est <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-rel">PDO::FETCH_ORI_REL</a></code></strong>, cette valeur spécifie la ligne
      à récupérer relativement à la position du curseur avant l&#039;appel à la fonction
      <span class="methodname"><strong>PDOStatement::fetch()</strong></span>.
     </p>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-pdostatement.fetch-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="simpara">
   La valeur retournée par cette fonction en cas de succès dépend du type récupéré.
   Dans tous les cas, <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> est retourné si une erreur survient ou s&#039;il n&#039;y a plus de lignes.
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-pdostatement.fetch-errors">
  <h3 class="title">Erreurs / Exceptions</h3>
  <p class="simpara">
Émet une erreur de niveau <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> si l&#039;attribut <strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> est défini
à <strong><code><a href="pdo.constants.php#pdo.constants.errmode-warning">PDO::ERRMODE_WARNING</a></code></strong>.
</p>
<p class="simpara">
Lève une exception <span class="classname"><a href="class.pdoexception.php" class="classname">PDOException</a></span> si l&#039;attribut <strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> est défini
à <strong><code><a href="pdo.constants.php#pdo.constants.errmode-exception">PDO::ERRMODE_EXCEPTION</a></code></strong>.
</p>
 </div>


 <div class="refsect1 examples" id="refsect1-pdostatement.fetch-examples">
  <h3 class="title">Exemples</h3>
  <div class="example" id="example-1">
   <p><strong>Exemple #1 Récupération de lignes en utilisant différentes méthodes</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$db </span><span style="color: #007700">= new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #DD0000">'sqlite::memory:'</span><span style="color: #007700">);
</span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"CREATE TABLE fruit (nom VARCHAR(100), couleur VARCHAR(100))"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(</span><span style="color: #DD0000">"INSERT INTO fruit (nom, couleur) VALUES
                             ('apple', 'red'),
                             ('banana', 'yellow'),
                             ('orange', 'orange'),
                             ('kiwi', 'green')"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT nom, couleur FROM fruit"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();

</span><span style="color: #FF8000">/* styles PDOStatement::fetch */
</span><span style="color: #007700">echo </span><span style="color: #DD0000">"PDO::FETCH_ASSOC: "</span><span style="color: #007700">;
echo </span><span style="color: #DD0000">"Retourne la ligne suivante sous la forme d'un tableau indexé par le nom des colonnes\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ASSOC</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);
echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;

echo </span><span style="color: #DD0000">"PDO::FETCH_BOTH: "</span><span style="color: #007700">;
echo </span><span style="color: #DD0000">"Retourne la ligne suivante sous la forme d'un tableau indexé par le nom et le numéro de la colonne\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_BOTH</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);
echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;

echo </span><span style="color: #DD0000">"PDO::FETCH_LAZY: "</span><span style="color: #007700">;
echo </span><span style="color: #DD0000">"Retourne la ligne suivante sous la forme d'un objet PDORow ayant les noms de colonnes comme propriétés\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_LAZY</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);
echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;

echo </span><span style="color: #DD0000">"PDO::FETCH_OBJ: "</span><span style="color: #007700">;
echo </span><span style="color: #DD0000">"Retourne la ligne suivante sous la forme d'un objet stdClass ayant les noms de colonnes comme propriétés\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_OBJ</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);
echo </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">PDO::FETCH_ASSOC: Retourne la ligne suivante sous la forme d&#039;un tableau indexé par le nom des colonnes
array(2) {
  [&quot;nom&quot;]=&gt;
  string(5) &quot;apple&quot;
  [&quot;couleur&quot;]=&gt;
  string(3) &quot;red&quot;
}

PDO::FETCH_BOTH: Retourne la ligne suivante sous la forme d&#039;un tableau indexé par le nom et le numéro de la colonne
array(4) {
  [&quot;nom&quot;]=&gt;
  string(6) &quot;banana&quot;
  [0]=&gt;
  string(6) &quot;banana&quot;
  [&quot;couleur&quot;]=&gt;
  string(6) &quot;yellow&quot;
  [1]=&gt;
  string(6) &quot;yellow&quot;
}

PDO::FETCH_LAZY: Retourne la ligne suivante sous la forme d&#039;un objet PDORow ayant les noms de colonnes comme propriétés
object(PDORow)#3 (3) {
  [&quot;queryString&quot;]=&gt;
  string(30) &quot;SELECT nom, couleur FROM fruit&quot;
  [&quot;nom&quot;]=&gt;
  string(6) &quot;orange&quot;
  [&quot;couleur&quot;]=&gt;
  string(6) &quot;orange&quot;
}

PDO::FETCH_OBJ: Retourne la ligne suivante sous la forme d&#039;un objet stdClass ayant les noms de colonnes comme propriétés
object(stdClass)#4 (2) {
  [&quot;nom&quot;]=&gt;
  string(4) &quot;kiwi&quot;
  [&quot;couleur&quot;]=&gt;
  string(5) &quot;green&quot;
}</pre>
</div>
   </div>
  </div>
  <div class="example" id="example-2">
   <p><strong>Exemple #2 Récupération des lignes avec un curseur scrollable</strong></p>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
</span><span style="color: #007700">function </span><span style="color: #0000BB">readDataForwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbh</span><span style="color: #007700">) {
    </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT hand, won, bet FROM mynumbers ORDER BY BET'</span><span style="color: #007700">;
    </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">, array(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">ATTR_CURSOR </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">CURSOR_SCROLL</span><span style="color: #007700">));
    </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();
    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_NEXT</span><span style="color: #007700">)) {
        </span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;
        print </span><span style="color: #0000BB">$data</span><span style="color: #007700">;
    }
}
function </span><span style="color: #0000BB">readDataBackwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbh</span><span style="color: #007700">) {
    </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT hand, won, bet FROM mynumbers ORDER BY bet'</span><span style="color: #007700">;
    </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">, array(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">ATTR_CURSOR </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">CURSOR_SCROLL</span><span style="color: #007700">));
    </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();
    </span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_LAST</span><span style="color: #007700">);
    do {
        </span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;
        print </span><span style="color: #0000BB">$data</span><span style="color: #007700">;
    } while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_PRIOR</span><span style="color: #007700">));
}

print </span><span style="color: #DD0000">"Lecture en avant :\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">readDataForwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);

print </span><span style="color: #DD0000">"Lecture en arrière :\n"</span><span style="color: #007700">;
</span><span style="color: #0000BB">readDataBackwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>L&#039;exemple ci-dessus va afficher :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Lecture en avant :
21    10    5
16    0     5
19    20    10

Lecture en arrière :
19    20    10
16    0     5
21    10    5</pre>
</div>
   </div>
  </div>

  <div class="example" id="example-3">
   <p><strong>Exemple #3 Ordre de construction</strong></p>
   <div class="example-contents"><p>
    Lorsque des objets sont récupérés via <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>,
    les propriétés de l&#039;objet sont assignées en premier, puis le constructeur
    de la classe est appelé. Cependant, lorsque <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> est également spécifié,
    cet ordre est inversé, c&#039;est-à-dire que le constructeur est d&#039;abord appelé, puis
    les propriétés sont assignées.
   </p></div>
   <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
</span><span style="color: #007700">class </span><span style="color: #0000BB">Person
</span><span style="color: #007700">{
    private </span><span style="color: #0000BB">$name</span><span style="color: #007700">;

    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()
    {
        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();
    }

    public function </span><span style="color: #0000BB">tell</span><span style="color: #007700">()
    {
        if (isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name</span><span style="color: #007700">)) {
            echo </span><span style="color: #DD0000">"Je suis </span><span style="color: #007700">{</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name</span><span style="color: #007700">}</span><span style="color: #DD0000">.\n"</span><span style="color: #007700">;
        } else {
            echo </span><span style="color: #DD0000">"Je n'ai pas encore de nom.\n"</span><span style="color: #007700">;
        }
    }
}

</span><span style="color: #0000BB">$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT * FROM people"</span><span style="color: #007700">);
</span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setFetchMode</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_CLASS</span><span style="color: #007700">, </span><span style="color: #DD0000">'Person'</span><span style="color: #007700">);
</span><span style="color: #0000BB">$person </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">();
</span><span style="color: #0000BB">$person</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();
</span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setFetchMode</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_CLASS</span><span style="color: #007700">|</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_PROPS_LATE</span><span style="color: #007700">, </span><span style="color: #DD0000">'Person'</span><span style="color: #007700">);
</span><span style="color: #0000BB">$person </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">();
</span><span style="color: #0000BB">$person</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
   </div>

   <div class="example-contents"><p>Résultat de l&#039;exemple ci-dessus est similaire à :</p></div>
   <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Je suis Alice.
Je suis Alice.
Je n&#039;ai pas encore de nom.
Je suis Bob.</pre>
</div>
   </div>
  </div>
 </div>


 <div class="refsect1 seealso" id="refsect1-pdostatement.fetch-seealso">
  <h3 class="title">Voir aussi</h3>
  <ul class="simplelist">
   <li><span class="methodname"><a href="pdo.prepare.php" class="methodname" rel="rdfs-seeAlso">PDO::prepare()</a> - Pr&eacute;pare une requ&ecirc;te &agrave; l'ex&eacute;cution et retourne un objet</span></li>
   <li><span class="methodname"><a href="pdostatement.execute.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::execute()</a> - Ex&eacute;cute une requ&ecirc;te pr&eacute;par&eacute;e</span></li>
   <li><span class="methodname"><a href="pdostatement.fetchall.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchAll()</a> - R&eacute;cup&egrave;re les lignes restantes d'un ensemble de r&eacute;sultats</span></li>
   <li><span class="methodname"><a href="pdostatement.fetchcolumn.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchColumn()</a> - Retourne une colonne depuis la ligne suivante d'un jeu de r&eacute;sultats</span></li>
   <li><span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchObject()</a> - R&eacute;cup&egrave;re la prochaine ligne et la retourne en tant qu'objet</span></li>
   <li><span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::setFetchMode()</a> - D&eacute;finit le mode de r&eacute;cup&eacute;ration par d&eacute;faut pour cette requ&ecirc;te</span></li>
  </ul>
 </div>

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