<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/pdo.constants.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'pdo.constants.fetch-modes.php',
    1 => 'Modos de recuperaci&oacute;n',
    2 => 'Modos de recuperaci&oacute;n',
  ),
  'up' => 
  array (
    0 => 'pdo.constants.php',
    1 => 'Constantes predefinidas',
  ),
  'prev' => 
  array (
    0 => 'pdo.constants.php',
    1 => 'Constantes predefinidas',
  ),
  'next' => 
  array (
    0 => 'pdo.connections.php',
    1 => 'Conexiones y gestor de conexi&oacute;n',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/pdo/constants.fetch-modes.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pdo.constants.fetch-modes" class="section">
 <h2 class="title">Modos de recuperación</h2>

 <p class="simpara">
  Véase <a href="pdo.constants.php#pdo.constants.cursors" class="link">constantes de cursor</a> para las
  constantes de cursor <code class="literal">PDO::FETCH_ORI_*</code>.
 </p>

 <div class="section" id="pdo.fetch-modes.basic">
  <h2 class="title">Modos básicos de recuperación</h2>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de recuperación</th>
      <th>Resumen</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-default">PDO::FETCH_DEFAULT</a></code></strong>
      </td>
      <td>
       Valor especial para usar el modo de recuperación por omisión actual.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong>
      </td>
      <td>
       Array indexado solo por el nombre de la columna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> (Default)
      </td>
      <td>
       Array indexado tanto por el número de columna como por el nombre.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong>
      </td>
      <td>
       Variante de <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong> que conserva las
       columnas duplicadas.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong>
      </td>
      <td>
       Array indexado solo por el número de columna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong>
      </td>
      <td>
       Una sola columna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-key-pair">PDO::FETCH_KEY_PAIR</a></code></strong>
      </td>
      <td>
       Pares clave-valor, indexados por la primera columna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>
      </td>
      <td>
       Una una función para crear el valor de retorno.
       (solamente con <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>)
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong>
      </td>
      <td>
       Objeto anónimo (<span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>).
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>
      </td>
      <td>
       Un objeto de la clase especificada.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="section" id="pdo.fetch-modes.class-flags">
  <h2 class="title">Opciones de PDO::FETCH_CLASS</h2>

  <p class="simpara">
   Estos modos se utilizan para implementar opciones al usar
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>.
  </p>

  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de recuperación</th>
      <th>Resumen</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-classtype">PDO::FETCH_CLASSTYPE</a></code></strong>
      </td>
      <td>
       Usa la primera columna como nombre de la clase.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong>
      </td>
      <td>
       Llama al constructor antes de establecer las propiedades.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-serialize">PDO::FETCH_SERIALIZE</a></code></strong>
      </td>
      <td>
       Usa datos serializados de PHP. Obsoleto a partir de PHP 8.1.0.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="section" id="pdo.fetch-modes.single">
  <h2 class="title">Modos de resultado único</h2>

  <p class="simpara">
   Los siguientes modos no pueden ser utilizados con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>

  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de recuperación</th>
      <th>Resumen</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-bound">PDO::FETCH_BOUND</a></code></strong>
      </td>
      <td>
       Asigna valores a las variables especificadas.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-into">PDO::FETCH_INTO</a></code></strong>
      </td>
      <td>
       Actualiza un objeto existente.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-lazy">PDO::FETCH_LAZY</a></code></strong>
      </td>
      <td>
       Recuperación diferida mediante <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> para acceso
       similar a arrays y objetos.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="section" id="pdo.fetch-modes.grouped">
  <h2 class="title">
   Flags de comportamiento especiales para <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>
  </h2>

  <p class="simpara">
   Los siguientes modos especiales para resultados múltiples solo funcionan con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span> y no funcionan con algunos otros
   modos de recuperación. Consulta la documentación completa para más detalles.
  </p>

  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de recuperación</th>
      <th>Resumen</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>
      </td>
      <td>
       Los resultados se agrupan por la primera columna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>
      </td>
      <td>
       Los resultados se indexan (únicamente) por la primera columna.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="section" id="pdo.fetch-modes.duplicate-names">
  <h2 class="title">Manejo de nombres duplicados de columnas</h2>
  <p class="simpara">
   Es posible que los resultados contengan varias columnas con el mismo nombre.
   Por ejemplo, al combinar dos tablas que contienen una columna con el mismo
   nombre.
  </p>
  <p class="simpara">
   Debido a que las estructuras de PHP, como los arrays y los objetos, no admiten varias claves
   o propiedades con el mismo nombre, el array o el objeto devuelto contendrá
   solo uno de los valores con el mismo nombre.
  </p>
  <p class="simpara">
   El valor que se devuelve para un nombre duplicado determinado debe considerarse
   indefinido.
  </p>
  <p class="simpara">
   Para evitar este problema, asigne nombres explícitos a las columnas mediante un alias. Por ejemplo:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="sqlcode"><pre class="sqlcode">SELECT table1.created_at AS t1_created_at,
       table2.created_at AS t2_created_at
FROM table1
JOIN table2 ON table1.table2id = table2.id</pre>
</div>
   </div>

  </div>
  <p class="simpara">
   Véase también <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong>,
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-fetch-table-names">PDO::ATTR_FETCH_TABLE_NAMES</a></code></strong> y
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-fetch-catalog-names">PDO::ATTR_FETCH_CATALOG_NAMES</a></code></strong>.
  </p>
 </div>

 <div class="section" id="pdo.fetch-modes.default">
  <h2 class="title">Estableciendo el modo de recuperación predeterminado</h2>
  <p class="simpara">
   Es posible establecer el modo de recuperación predeterminado para todas las consultas usando
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong> con
   <span class="methodname"><a href="pdo.construct.php" class="methodname">PDO::__construct()</a></span> o
   <span class="methodname"><a href="pdo.setattribute.php" class="methodname">PDO::setAttribute()</a></span>.
  </p>
  <p class="simpara">
   El modo de recuperación predeterminado para una sentencia específica se puede establecer usando
   <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span>.
   Esto afecta a la reutilización como sentencia preparada y a la iteración (usando
   <a href="control-structures.foreach.php" class="link"><code class="literal">foreach</code></a>).
  </p>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    <span class="methodname"><a href="pdostatement.setattribute.php" class="methodname">PDOStatement::setAttribute()</a></span> no se puede usar para establecer el
    modo de recuperación predeterminado. Solo acepta atributos específicos del controlador y, de forma silenciosa,
    ignora los atributos que no reconoce.
   </p>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-default">
  <h2 class="title">PDO::FETCH_DEFAULT (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Disponible a partir de PHP 8.0.7.
  </p>
  <p class="simpara">
   Este es un valor especial que utiliza el modo de recuperación predeterminado actual para un
   <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>. Es especialmente útil como valor predeterminado
   para los parámetros de método al extender
   <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> para su uso con
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-statement-class">PDO::ATTR_STATEMENT_CLASS</a></code></strong>.
  </p>
  <p class="para">
   Este valor no se puede usar con
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong>.
  </p>
 </div>

 <div class="section" id="pdo.constants.fetch-assoc">
  <h2 class="title">PDO::FETCH_ASSOC (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong> devuelve un array indexada únicamente por
   nombre de columna.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users"</span><span style="color: #007700">);<br /></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_ASSOC</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [userid] =&gt; 104
    [name] =&gt; Chris
    [country] =&gt; Ukraine
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-both">
  <h2 class="title">PDO::FETCH_BOTH (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este es el modo de recuperación predeterminado.
  </p>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> devuelve un array indexada tanto por número
   de columna como por nombre. Esto significa que cada valor devuelto se duplica para cada
   fila de resultados.
  </p>
  <p class="simpara">
   El número de columna comienza en 0 y se determina por el orden de las columnas de
   la consulta, no (por ejemplo) por el orden en que se definen las columnas en la tabla.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    No se recomienda utilizar el índice de columna numérico, ya que esto puede cambiar cuando
    se cambie la consulta, o cuando se cambie el esquema de la tabla al usar
    <code class="literal">SELECT *</code>.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Es posible que el número de entradas indexadas por nombre no coincida con el número de entradas indexadas
    por número en los casos en que varias columnas devueltas utilicen el mismo
    nombre.
   </span>
  </p></blockquote>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users"</span><span style="color: #007700">);<br /></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_BOTH</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [id] =&gt; 104,
    [0] =&gt; 104,
    [name] =&gt; Chris,
    [1] =&gt; Chris,
    [country] =&gt; Ukraine,
    [2] =&gt; Ukraine
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-named">
  <h2 class="title">PDO::FETCH_NAMED (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong> devuelve resultados en el mismo formato que
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong> excepto que, cuando varias columnas usan
   el mismo nombre, todos los valores se devuelven como una lista.
  </p>
  <p class="simpara">
   Para obtener más información sobre el manejo de nombres de columnas duplicados y alternativas,
   consulte la sección <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.duplicate-names" class="link">manejo de
   nombres duplicados</a> anterior.
  </p>
  <p class="simpara">
   El orden en el que se devuelven los valores duplicados debe considerarse
   indefinido. No hay forma de saber de dónde proviene cada valor.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"SELECT users.*, referrer.name<br />     FROM users<br />     LEFT JOIN users AS referrer ON users.referred_by = referrer.userid<br />     WHERE userid = 109"<br /></span><span style="color: #007700">);<br /></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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [userid] =&gt; 109
    [name] =&gt; Array
        (
            [0] =&gt; Toni
            [1] =&gt; Chris
        )
    [country] =&gt; Germany
    [referred_by] = 104
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-num">
  <h2 class="title">PDO::FETCH_NUM (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong> devuelve un array indexada únicamente por número
   de columna. El número de columna comienza en 0 y se determina por el orden de las columnas de resultados en
   la consulta, no (por ejemplo) por el orden en que se definen las columnas en la tabla.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    No se recomienda utilizar el índice de columna numérico, ya que esto puede cambiar cuando
    se cambie la consulta, o cuando se cambie el esquema de la tabla al usar
    <code class="literal">SELECT *</code>.
   </span>
  </p></blockquote>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users"</span><span style="color: #007700">);<br /></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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [0] =&gt; 104
    [1] =&gt; Chris
    [2] =&gt; Ukraine
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-column">
  <h2 class="title">PDO::FETCH_COLUMN (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong> devuelve los valores de una sola columna.
   Utilice el segundo argumento de <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span>
   o <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span> para especificar la columna que
   se devuelve.
  </p>
  <p class="simpara">
   Si la columna especificada no existe, se lanzará un
   <span class="classname"><a href="class.valueerror.php" class="classname">ValueError</a></span>.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_COLUMN</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_COLUMN</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [0] =&gt; Chris
    [1] =&gt; Jamie
    [2] =&gt; Robin
)

Array
(
    [0] =&gt; Ukraine
    [1] =&gt; England
    [2] =&gt; Germany
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-key-pair">
  <h2 class="title">PDO::FETCH_KEY_PAIR (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-key-pair">PDO::FETCH_KEY_PAIR</a></code></strong> devuelve pares de valores, indexados por
   la primera columna. Los resultados deben contener solo dos columnas. Este modo de recuperación
   solo tiene sentido con <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Si la primera columna no es única, se perderán valores. Qué valor(es) se
    perderán debe considerarse indefinido.
   </span>
  </p></blockquote>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_KEY_PAIR</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [Chris] =&gt; Ukraine
    [Jamie] =&gt; England
    [Robin] =&gt; Germany
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-func">
  <h2 class="title">PDO::FETCH_FUNC (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Especifique una función para crear el valor devuelto. Este modo solo se puede usar
   con <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   La función recibe los valores como parámetros.
   No es posible recuperar el nombre de la columna a la que estaba asociado un valor dado.
   Es crucial asegurarse de que el orden de las columnas en la consulta coincida con el
   orden de los parámetros de la función.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Los efectos de <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong> y
    <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong> se aplican a los resultados antes de
    que se llame a la función.
   </span>
  </p></blockquote>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">valueCreator</span><span style="color: #007700">(</span><span style="color: #0000BB">$col1</span><span style="color: #007700">, </span><span style="color: #0000BB">$col2</span><span style="color: #007700">, </span><span style="color: #0000BB">$col3</span><span style="color: #007700">)<br />{<br />    return [<br />        </span><span style="color: #DD0000">'col1' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$col1</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'col2' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">strtoupper</span><span style="color: #007700">(</span><span style="color: #0000BB">$col2</span><span style="color: #007700">),<br />        </span><span style="color: #DD0000">'col3' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$col3</span><span style="color: #007700">,<br />        </span><span style="color: #DD0000">'customKey' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'customValue'</span><span style="color: #007700">,<br />    ];<br />}<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_FUNC</span><span style="color: #007700">, </span><span style="color: #0000BB">valueCreator</span><span style="color: #007700">(...));<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [0] =&gt; Array
        (
            [col1] =&gt; 104
            [col2] =&gt; SAM
            [col3] =&gt; Ukraine
            [customKey] =&gt; customValue
        )

    [1] =&gt; Array
        (
            [col1] =&gt; 105
            [col2] =&gt; JAMIE
            [col3] =&gt; England
            [customKey] =&gt; customValue
        )

    [2] =&gt; Array
        (
            [col1] =&gt; 107
            [col2] =&gt; ROBIN
            [col3] =&gt; Germany
            [customKey] =&gt; customValue
        )

)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-obj">
  <h2 class="title">PDO::FETCH_OBJ (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong> devuelve un objeto
   <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>.
  </p>
  <p class="simpara">
   Véase también <span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname">PDOStatement::fetchObject()</a></span> y
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong>.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users"</span><span style="color: #007700">);<br /></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_OBJ</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
stdClass Object
(
    [userid] =&gt; 104
    [name] =&gt; Chris
    [country] =&gt; Ukraine
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-class">
  <h2 class="title">PDO::FETCH_CLASS (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Devuelve un objeto de una clase específica. Para conocer comportamientos adicionales, consulte las
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">opciones flags</a>.
  </p>
  <p class="simpara">
   Si una propiedad no existe con el nombre de una columna devuelta, se
   declarará dinámicamente. Este comportamiento está obsoleto y provocará un error
   a partir de PHP 9.0.
  </p>
  <p class="simpara">
   Véase también <span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname">PDOStatement::fetchObject()</a></span>.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">TestEntity<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$userid</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$country</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$referred_by_userid</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()<br />    {<br />        print </span><span style="color: #DD0000">"Constructor called with "</span><span style="color: #007700">. </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">func_get_args</span><span style="color: #007700">()) .</span><span style="color: #DD0000">" args\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #DD0000">"Properties set when constructor called? "<br />            </span><span style="color: #007700">. (isset(</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">'Yes' </span><span style="color: #007700">: </span><span style="color: #DD0000">'No'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"SELECT userid, name, country, referred_by_userid FROM users"<br /></span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</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">TestEntity</span><span style="color: #007700">::class);<br /></span><span style="color: #0000BB">$result </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">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">Resultado del ejemplo anterior es similar a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Constructor called with 0 args
Properties set when constructor called? Yes
object(TestEntity)#3 (4) {
  [&quot;userid&quot;]=&gt;
  int(104)
  [&quot;name&quot;]=&gt;
  string(5) &quot;Chris&quot;
  [&quot;country&quot;]=&gt;
  string(7) &quot;Ukraine&quot;
  [&quot;referred_by_userid&quot;]=&gt;
  NULL
}
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-classtype">
  <h2 class="title">PDO::FETCH_CLASSTYPE (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este modo de recuperación solo se puede usar combinado con
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (y
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">sus otras opciones</a>).
  </p>
  <p class="simpara">
   Cuando se utiliza este modo de recuperación, PDO utilizará la primera columna devuelta como
   nombre de la clase que se devolverá.
  </p>
  <p class="simpara">
   Si no se encuentra la clase especificada, se devolverá un objeto
   <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>, sin advertencia ni error.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">TestEntity<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$userid</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$country</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$referred_by_userid</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()<br />    {<br />        print </span><span style="color: #DD0000">"Constructor called with "</span><span style="color: #007700">. </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">func_get_args</span><span style="color: #007700">()) .</span><span style="color: #DD0000">" args\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #DD0000">"Properties set when constructor called? "<br />            </span><span style="color: #007700">. (isset(</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">'Yes' </span><span style="color: #007700">: </span><span style="color: #DD0000">'No'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"SELECT 'TestEntity', userid, name, country, referred_by_userid FROM users"<br /></span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</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_CLASSTYPE</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </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">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">Resultado del ejemplo anterior es similar a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Constructor called with 0 args
Properties set when constructor called? Yes
object(TestEntity)#3 (4) {
  [&quot;userid&quot;]=&gt;
  int(104)
  [&quot;name&quot;]=&gt;
  string(5) &quot;Chris&quot;
  [&quot;country&quot;]=&gt;
  string(7) &quot;Ukraine&quot;
  [&quot;referred_by_userid&quot;]=&gt;
  NULL
}
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-props-late">
  <h2 class="title">PDO::FETCH_PROPS_LATE (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este modo de recuperación solo se puede usar combinado con
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (y
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">sus otras opciones</a>).
  </p>
  <p class="simpara">
   Cuando se utiliza este modo de recuperación, se llamará al constructor antes de
   que se establezcan las propiedades.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">TestEntity<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$userid</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$country</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$referred_by_userid</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()<br />    {<br />        print </span><span style="color: #DD0000">"Constructor called with "</span><span style="color: #007700">. </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">func_get_args</span><span style="color: #007700">()) .</span><span style="color: #DD0000">" args\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #DD0000">"Properties set when constructor called? "<br />            </span><span style="color: #007700">. (isset(</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">'Yes' </span><span style="color: #007700">: </span><span style="color: #DD0000">'No'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"SELECT userid, name, country, referred_by_userid FROM users"<br /></span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</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: #0000BB">TestEntity</span><span style="color: #007700">::class);<br /></span><span style="color: #0000BB">$result </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">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">Resultado del ejemplo anterior es similar a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Constructor called with 0 args
Properties set when constructor called? No
object(TestEntity)#3 (4) {
  [&quot;userid&quot;]=&gt;
  int(104)
  [&quot;name&quot;]=&gt;
  string(5) &quot;Chris&quot;
  [&quot;country&quot;]=&gt;
  string(7) &quot;Ukraine&quot;
  [&quot;referred_by_userid&quot;]=&gt;
  NULL
}
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-serialize">
  <h2 class="title">PDO::FETCH_SERIALIZE (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <div class="warning"><strong class="warning">Advertencia</strong><p class="simpara">Esta característica está
<em>OBSOLETA</em> a partir de PHP 8.0.0. Depender de esta característica
está altamente desaconsejado.</p></div>
  <p class="simpara">
   Este modo de recuperación solo se puede usar combinado con
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (y
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">sus otras opciones</a>).
  </p>
  <p class="simpara">
   Cuando se utiliza este modo de recuperación, la clase especificada debe ser
   <span class="interfacename"><a href="class.serializable.php" class="interfacename">Serializable</a></span>.
  </p>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    Esta función no admite un string que contenga un objeto serializado completo
    (con <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span>).
   </p>
  </div>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    Este modo de recuperación no llama al constructor.
   </p>
  </div>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">TestEntity </span><span style="color: #007700">implements </span><span style="color: #0000BB">Serializable<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$userid</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$country</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$referred_by_userid</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()<br />    {<br />        print </span><span style="color: #DD0000">"Constructor llamado con " </span><span style="color: #007700">. </span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">func_get_args</span><span style="color: #007700">()) . </span><span style="color: #DD0000">" argumentos\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #DD0000">"¿Propiedades establecidas cuando se llama al constructor? "<br />            </span><span style="color: #007700">. (isset(</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">'Sí' </span><span style="color: #007700">: </span><span style="color: #DD0000">'No'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    }<br /><br />    public function </span><span style="color: #0000BB">serialize</span><span style="color: #007700">()<br />    {<br />        return </span><span style="color: #0000BB">join</span><span style="color: #007700">(<br />            </span><span style="color: #DD0000">"|"</span><span style="color: #007700">,<br />            [</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">userid</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: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">country</span><span style="color: #007700">, </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">referred_by_userid</span><span style="color: #007700">]<br />        );<br />    }<br /><br />    public function </span><span style="color: #0000BB">unserialize</span><span style="color: #007700">(</span><span style="color: #0000BB">string $data</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$parts </span><span style="color: #007700">= </span><span style="color: #0000BB">explode</span><span style="color: #007700">(</span><span style="color: #DD0000">"|"</span><span style="color: #007700">, </span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">userid </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">$parts</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">];<br />        </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: #0000BB">$parts</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">];<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">country </span><span style="color: #007700">= </span><span style="color: #0000BB">$parts</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">];<br /><br />        </span><span style="color: #0000BB">$refId </span><span style="color: #007700">= </span><span style="color: #0000BB">$parts</span><span style="color: #007700">[</span><span style="color: #0000BB">3</span><span style="color: #007700">];<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">referred_by_userid </span><span style="color: #007700">= (</span><span style="color: #0000BB">$refId </span><span style="color: #007700">=== </span><span style="color: #DD0000">"" </span><span style="color: #007700">? </span><span style="color: #0000BB">null </span><span style="color: #007700">: (int) </span><span style="color: #0000BB">$refId</span><span style="color: #007700">);<br />    }<br />}<br /><br />print </span><span style="color: #DD0000">"Establecer registro (constructor llamado manualmente):\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">exec</span><span style="color: #007700">(<br />    </span><span style="color: #DD0000">"CREATE TABLE serialize (<br />        sdata TEXT<br />    )"<br /></span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$origObj </span><span style="color: #007700">= new </span><span style="color: #0000BB">TestEntity</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$origObj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">userid </span><span style="color: #007700">= </span><span style="color: #0000BB">200</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$origObj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name </span><span style="color: #007700">= </span><span style="color: #DD0000">'Seri'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$origObj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">country </span><span style="color: #007700">= </span><span style="color: #DD0000">'Syria'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$origObj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">referred_by_userid </span><span style="color: #007700">= </span><span style="color: #0000BB">null</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$insert </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">"INSERT INTO serialize (sdata) VALUES (:sdata)"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$insert</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">([</span><span style="color: #DD0000">'sdata' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">$origObj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">serialize</span><span style="color: #007700">()]);<br /><br />print </span><span style="color: #DD0000">"\nObtener resultados:\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$query </span><span style="color: #007700">= </span><span style="color: #DD0000">"SELECT sdata FROM serialize"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #0000BB">$query</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// NOTA: El constructor nunca se llama!<br /></span><span style="color: #0000BB">$stmt</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_SERIALIZE</span><span style="color: #007700">, </span><span style="color: #0000BB">TestEntity</span><span style="color: #007700">::class);<br /></span><span style="color: #0000BB">$result </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">();<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">Resultado del ejemplo anterior es similar a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Deprecated: TestEntity implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in Standard input code on line 2
Establecer registro (constructor llamado manualmente):
Constructor llamado con 0 argumentos
¿Propiedades establecidas cuando se llama al constructor? No

Obtener resultados:
Deprecated: PDOStatement::setFetchMode(): The PDO::FETCH_SERIALIZE mode is deprecated in Standard input code on line 58

Deprecated: PDOStatement::fetch(): The PDO::FETCH_SERIALIZE mode is deprecated in Standard input code on line 59
object(TestEntity)#5 (4) {
  [&quot;userid&quot;]=&gt;
  int(200)
  [&quot;name&quot;]=&gt;
  string(4) &quot;Seri&quot;
  [&quot;country&quot;]=&gt;
  string(5) &quot;Syria&quot;
  [&quot;referred_by_userid&quot;]=&gt;
  NULL
}
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-bound">
  <h2 class="title">PDO::FETCH_BOUND (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este modo de recuperación no se puede utilizar con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de recuperación no devuelve directamente un resultado, sino que asigna valores a
   las variables especificadas con <span class="methodname"><a href="pdostatement.bindcolumn.php" class="methodname">PDOStatement::bindColumn()</a></span>. El
   método de recuperación llamado devuelve <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Cuando se utilizan sentencias preparadas, para que funcionen correctamente, las variables deben enlazarse
    después de que se ejecute la consulta.
   </span>
  </p></blockquote>
  <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$query </span><span style="color: #007700">= </span><span style="color: #DD0000">"SELECT users.userid, users.name, users.country, referrer.name<br />    FROM users<br />    LEFT JOIN users AS referrer ON users.referred_by_userid = referrer.userid"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$stmt </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: #0000BB">$query</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bindColumn</span><span style="color: #007700">(</span><span style="color: #DD0000">'userid'</span><span style="color: #007700">, </span><span style="color: #0000BB">$userId</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bindColumn</span><span style="color: #007700">(</span><span style="color: #DD0000">'name'</span><span style="color: #007700">, </span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bindColumn</span><span style="color: #007700">(</span><span style="color: #DD0000">'country'</span><span style="color: #007700">, </span><span style="color: #0000BB">$country</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// Se utiliza la posición de la columna para resolver nombres de columna duplicados.<br />// Para evitar que esto falle si se modifica la consulta, se recomienda usar un alias SQL.<br />// Por ejemplo: referrer.name AS referrer_name<br /></span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">bindColumn</span><span style="color: #007700">(</span><span style="color: #0000BB">4</span><span style="color: #007700">, </span><span style="color: #0000BB">$referrerName</span><span style="color: #007700">);<br /><br />while (</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_BOUND</span><span style="color: #007700">)) {<br />    print </span><span style="color: #0000BB">join</span><span style="color: #007700">(</span><span style="color: #DD0000">"\t"</span><span style="color: #007700">, [</span><span style="color: #0000BB">$userId</span><span style="color: #007700">, </span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$country</span><span style="color: #007700">, (</span><span style="color: #0000BB">$referrerName </span><span style="color: #007700">?? </span><span style="color: #DD0000">'NULL'</span><span style="color: #007700">)]) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}</span></span></code></div>
  </div>

  <p class="para">El ejemplo anterior mostrará:</p>
  <div class="example-contents screen">
<div class="cdata"><pre>
104	Chris	Ukraine	NULL
105	Jamie	England	NULL
107	Robin	Germany	Chris
108	Sean	Ukraine	NULL
109	Toni	Germany	NULL
110	Toni	Germany	NULL
</pre></div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-into">
  <h2 class="title">PDO::FETCH_INTO (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este modo de recuperación no se puede utilizar con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de recuperación actualiza las propiedades del objeto especificado. El objeto se
   devuelve si la operación se realiza correctamente.
  </p>
  <p class="simpara">
   Si una propiedad no existe con el nombre de una columna devuelta, se
   declarará dinámicamente. Este comportamiento está obsoleto y provocará un error
   a partir de PHP 9.0.
  </p>
  <p class="simpara">
   Las propiedades deben ser <code class="literal">public</code> y no pueden ser
   <code class="literal">readonly</code>.
  </p>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    No hay forma de cambiar el objeto que se va a actualizar sin usar
    <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span> entre la recuperación de cada
    registro.
   </p>
  </div>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">TestEntity<br /></span><span style="color: #007700">{<br />    public </span><span style="color: #0000BB">$userid</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$country</span><span style="color: #007700">;<br /><br />    public </span><span style="color: #0000BB">$referred_by_userid</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$obj </span><span style="color: #007700">= new </span><span style="color: #0000BB">TestEntity</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country, referred_by_userid FROM users"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$stmt</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_INTO</span><span style="color: #007700">, </span><span style="color: #0000BB">$obj</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </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">();<br /><br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">Resultado del ejemplo anterior es similar a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
object(TestEntity)#3 (4) {
  [&quot;userid&quot;]=&gt;
  int(104)
  [&quot;name&quot;]=&gt;
  string(5) &quot;Chris&quot;
  [&quot;country&quot;]=&gt;
  string(7) &quot;Ukraine&quot;
  [&quot;referred_by_userid&quot;]=&gt;
  NULL
}
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-lazy">
  <h2 class="title">PDO::FETCH_LAZY (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   Este modo de recuperación no se puede utilizar con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de obtención recuperación un objeto <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> que proporciona acceso
   a los valores tanto como arrays como objetos (es decir, combina el comportamiento de
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> y
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong>), recuperados de forma diferida.
  </p>
  <p class="simpara">
   Esto permite un acceso eficiente en memoria (en el lado de PHP) a los resultados sin almacenar
   en búfer en el servidor de la base de datos. El uso o no de almacenamiento en búfer del lado del cliente por parte
   de PDO depende del controlador específico de la base de datos que se utilice (y de su configuración).
  </p>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> devolverá <code class="literal">NULL</code> sin
    mostrar ningún error ni advertencia al acceder a propiedades o claves no definidas.
    Esto puede dificultar la detección y depuración de errores como erratas o consultas que
    no devuelven los datos esperados.
   </p>
  </div>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    El objeto <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> devuelto se actualiza cada vez que
    se recupera un resultado.
   </p>
  </div>
  <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country, referred_by_userid FROM users"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </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_LAZY</span><span style="color: #007700">);<br /><br />print </span><span style="color: #DD0000">"ID: "</span><span style="color: #007700">. </span><span style="color: #0000BB">$result</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] .</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Nombre: </span><span style="color: #007700">{</span><span style="color: #0000BB">$result</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">;<br />print </span><span style="color: #DD0000">"País: " </span><span style="color: #007700">. </span><span style="color: #0000BB">$result</span><span style="color: #007700">[</span><span style="color: #DD0000">'country'</span><span style="color: #007700">] .</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #FF8000">// Devuelve NULL. No se genera ninguna advertencia ni error.<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"No existe: " </span><span style="color: #007700">. </span><span style="color: #0000BB">var_export</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">does_not_exist</span><span style="color: #007700">, </span><span style="color: #0000BB">true</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$differentResult </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_LAZY</span><span style="color: #007700">);<br /></span><span style="color: #FF8000">// El PDOrow recuperado previamente ahora apunta al resultado recién recuperado.<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"ID: "</span><span style="color: #007700">. </span><span style="color: #0000BB">$result</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] .</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;</span></span></code></div>
  </div>

  <p class="para">El ejemplo anterior mostrará:</p>
  <div class="example-contents screen">
<div class="cdata"><pre>
ID: 104
Nombre: Chris
País: Ukraine
No existe: NULL
ID: 105
</pre></div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-group">
  <h2 class="title">PDO::FETCH_GROUP (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong> devuelve listas de arrays asociativos,
   indexados por una columna (no única). Este modo de obtención solo funciona con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Cuando se combina con <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>, ambos modos
   utilizarán la misma columna, lo que hace que la combinación de estos modos sea inútil.
  </p>
  <p class="simpara">
   Esta recuperación debe combinarse con una de
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong>, <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong>, <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong> o
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>.
  </p>
  <p class="simpara">
   Si no se proporciona ningún modo de recuperación de la lista anterior, se utilizará
   el modo de recuperación predeterminado actual para <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>.
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT country, userid, name FROM users"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_GROUP </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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [Ukraine] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 104
                    [name] =&gt; Chris
                )

            [1] =&gt; Array
                (
                    [userid] =&gt; 108
                    [name] =&gt; Sean
                )

        )
    [England] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 105
                    [name] =&gt; Jamie
                )

        )

    [Germany] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 107
                    [name] =&gt; Robin
                )

            [1] =&gt; Array
                (
                    [userid] =&gt; 109
                    [name] =&gt; Toni
                )
        )
)
</pre></div>
   </div>
  </div>
  <p class="simpara">
   En el ejemplo anterior, cabe señalar que la primera columna se omite del
   array en cada fila y solo está disponible como clave. Se puede incluir
   repitiendo la columna, como en el siguiente ejemplo:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT country, userid, name, country FROM users"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_GROUP </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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [Ukraine] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 104
                    [name] =&gt; Chris
                    [country] =&gt; Ukraine
                )

            [1] =&gt; Array
                (
                    [userid] =&gt; 108
                    [name] =&gt; Sean
                    [country] =&gt; Ukraine
                )

        )
    [England] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 105
                    [name] =&gt; Jamie
                    [country] =&gt; England
                )

        )

    [Germany] =&gt; Array
        (
            [0] =&gt; Array
                (
                    [userid] =&gt; 107
                    [name] =&gt; Robin
                    [country] =&gt; Germany
                )

            [1] =&gt; Array
                (
                    [userid] =&gt; 109
                    [name] =&gt; Toni
                    [country] =&gt; Germany
                )
        )
)
</pre></div>
   </div>
  </div>
 </div>

 <div class="section" id="pdo.constants.fetch-unique">
  <h2 class="title">PDO::FETCH_UNIQUE (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)</h2>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong> utiliza la primera columna para indexar los registros,
   devolviendo un registro por cada valor de índice. Este modo de recuperación solo funciona con
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Cuando se combina con <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>, ambos modos utilizarán
   la misma columna, lo que hace que la combinación de estos modos sea inútil.
  </p>
  <p class="simpara">
   Esta recuperación debe combinarse con uno de
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong>, <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-named">PDO::FETCH_NAMED</a></code></strong>, <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-num">PDO::FETCH_NUM</a></code></strong>,
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-column">PDO::FETCH_COLUMN</a></code></strong> o
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>.
  </p>
  <p class="simpara">
   Si no se proporciona ningún modo de recuperación de la lista anterior, se utilizará
   el modo de recuperación predeterminado actual para <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>.
  </p>
  <p class="simpara">
   Cuando se utiliza con una columna que se sabe que es única (como el ID del registro), este
   modo proporciona la capacidad de devolver rápidamente resultados indexados por ese valor.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Si la primera columna no es única, se perderán valores. Qué valor(es) se
    perderán se considera indefinido.
   </span>
  </p></blockquote>
  <div class="caution"><strong class="caution">Precaución</strong>
   <p class="simpara">
    Siempre que sea posible, se recomienda filtrar los registros mediante SQL. La base de datos
    utilizará índices para optimizar este proceso y devolver únicamente los registros necesarios.
    Seleccionar más registros de los necesarios puede aumentar significativamente
    el uso de memoria y el tiempo de consulta para conjuntos de resultados grandes.
   </p>
  </div>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_UNIQUE </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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [104] =&gt; Array
        (
            [name] =&gt; Chris
            [country] =&gt; Ukraine
        )

    [105] =&gt; Array
        (
            [name] =&gt; Jamie
            [country] =&gt; England
        )

    [107] =&gt; Array
        (
            [name] =&gt; Robin
            [country] =&gt; Germany
        )

)
</pre></div>
   </div>
  </div>
  <p class="simpara">
   En el ejemplo anterior, cabe señalar que la primera columna se omite del
   array en cada fila y solo está disponible como clave. Se puede incluir
   repitiendo la columna, como en el siguiente ejemplo:
  </p>
  <div class="informalexample">
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT userid, userid, name, country FROM users LIMIT 3"</span><span style="color: #007700">);<br /></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">fetchAll</span><span style="color: #007700">(</span><span style="color: #0000BB">\PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_UNIQUE </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">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">);</span></span></code></div>
   </div>

   <p class="para">El ejemplo anterior mostrará:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Array
(
    [104] =&gt; Array
        (
            [userid] =&gt; 104
            [name] =&gt; Chris
            [country] =&gt; Ukraine
        )

    [105] =&gt; Array
        (
            [userid] =&gt; 105
            [name] =&gt; Jamie
            [country] =&gt; England
        )

    [107] =&gt; Array
        (
            [userid] =&gt; 107
            [name] =&gt; Robin
            [country] =&gt; Germany
        )

)
</pre></div>
   </div>
  </div>
 </div>

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