<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'pdo.constants.fetch-modes.php',
    1 => 'Modos de Busca',
    2 => 'Modos de Busca',
  ),
  '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 => 'Conex&otilde;es e gerenciamento de conex&otilde;es',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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 Busca</h2>

 <p class="simpara">
  Consulte as <a href="pdo.constants.php#pdo.constants.cursors" class="link">constantes de cursores</a> para as
  constantes <code class="literal">PDO::FETCH_ORI_*</code>.
 </p>

 <div class="section" id="pdo.fetch-modes.basic">
  <h2 class="title">Modos de Busca Básicos</h2>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de Busca</th>
      <th>Resumo</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>
       Especifica que o modo de busca padrão deve ser usado.
      </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 somente pelo nome da coluna.
      </td>
     </tr>

     <tr>
      <td>
       <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> (Padrão)
      </td>
      <td>
       Array indexado tanto pelo nome quanto pelo número da coluna.
      </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 retém colunas
       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 somente pelo número da coluna.
      </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>
       Uma única coluna.
      </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 de chave-valor, indexados pela primeira coluna.
      </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>
       Usa uma função para criar o valor de retorno.
       (<span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span> somente)
      </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>
       Um objeto de uma classe especificada.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

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

  <p class="simpara">
   Estes modos são usados para implementar opções ao 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 busca</th>
      <th>Resumo</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 a primeira coluna como o nome da classe.
      </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>
       Chama o construtor antes de definir as propriedades.
      </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 dados serializados do PHP. Descontinuado a partir do 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">
   Os modos a seguir não podem ser usados com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>

  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de busca</th>
      <th>Resumo</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>
       Vincula valores a variáveis 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>
       Atualiza um 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>
       Busca lenta via <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> para acessos como array
       e objetos.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

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

  <p class="simpara">
   Os seguintes modos especiais para múltiplos resultados funcionam apenas com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span> e não funcionam com alguns outros
   modos de busca. Consulte a documentação completa para obter detalhes.
  </p>

  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Modo de busca</th>
      <th>Resumo</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>
       Os resultados estão agrupados pela primeira coluna.
      </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>
       Os resultados são indexados (exclusivamente) pela primeira coluna.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>

 <div class="section" id="pdo.fetch-modes.duplicate-names">
  <h2 class="title">Tratamento de nomes de colunas duplicados</h2>
  <p class="simpara">
   É possível que os resultados contenham várias colunas com o mesmo nome.
   Por exemplo, ao unir duas tabelas que contêm uma coluna com o mesmo
   nome.
  </p>
  <p class="simpara">
   Como as estruturas do PHP, como arrays e objetos, não suportam múltiplas chaves
   ou propriedades com o mesmo nome, o array ou objeto retornado
   conterá apenas 1 dos valores com o mesmo nome.
  </p>
  <p class="simpara">
   O valor retornado para um determinado nome duplicado deve ser considerado
   indefinido.
  </p>
  <p class="simpara">
   Para evitar esse problema, nomeie as colunas explicitamente usando um sinônimo. Por exemplo:
  </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">
   Consulte também <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> e
   <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">Definindo o modo de busca padrão </h2>
  <p class="simpara">
   É possível definir o modo de busca padrão para todas as consultas usando
   <strong><code><a href="pdo.constants.php#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong> com
   <span class="methodname"><a href="pdo.construct.php" class="methodname">PDO::__construct()</a></span> ou
   <span class="methodname"><a href="pdo.setattribute.php" class="methodname">PDO::setAttribute()</a></span>.
  </p>
  <p class="simpara">
   É possível definir o modo de busca padrão para uma instrução específica usando
   <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span>.
   Isso afeta a reutilização como uma instrução preparada e a iteração (usando
   <a href="control-structures.foreach.php" class="link"><code class="literal">foreach</code></a>).
  </p>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    <span class="methodname"><a href="pdostatement.setattribute.php" class="methodname">PDOStatement::setAttribute()</a></span> não pode ser usado para definir o
    modo de busca padrão. Ele aceita apenas atributos específicos do driver e ignora silenciosamente
    os atributos que não são reconhecidos.
   </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">
   Disponível a partir do PHP 8.0.7.
  </p>
  <p class="simpara">
   Este é um valor especial que usa o modo de busca padrão atual para um
   <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span>. É particularmente útil como o valor padrão
   para parâmetros de método ao estender
   <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> para uso com
   <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 não pode ser usado com
   <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> retorna um array indexado apenas pelo nome da
   coluna.
  </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">O exemplo acima produzirá:</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 é o modo de busca padrão.
  </p>
  <p class="simpara">
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> retorna uma matriz indexada tanto pelo número da coluna quanto pelo nome.
   Isso significa que cada valor retornado é duplicado para cada
   linha de resultado.
  </p>
  <p class="simpara">
   O número da coluna começa em 0 e é determinado pela ordem da coluna de resultado na
   consulta, não (por exemplo) pela ordem em que as colunas são definidas na tabela.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Não é recomendável usar o índice numérico de coluna, pois ele pode mudar quando
    a consulta for alterada ou quando o esquema da tabela for alterado ao usar
    <code class="literal">SELECT *</code>.
   </span>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    O número de entradas indexadas por nome pode não corresponder ao número de entradas
    indexadas por número nos casos em que várias colunas retornadas usam o mesmo
    nome.
   </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">O exemplo acima produzirá:</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> retorna resultados no mesmo formato que
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-assoc">PDO::FETCH_ASSOC</a></code></strong> exceto que, quando várias colunas usam
   o mesmo nome, todos os valores são retornados como uma lista.
  </p>
  <p class="simpara">
   Para obter mais informações sobre o tratamento de nomes de colunas duplicados e alternativas,
   consulte a seção <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.duplicate-names" class="link">tratamento de
   nomes duplicados</a> acima.
  </p>
  <p class="simpara">
   A ordem em que os valores duplicados são retornados deve ser considerada
   indefinida. Não há como saber de onde cada valor veio.
  </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">O exemplo acima produzirá:</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> retorna um array indexado apenas pelo número da coluna.
   O número da coluna começa em 0 e é determinado pela ordem da coluna de resultado na
   consulta, não (por exemplo) pela ordem em que as colunas são definidas na tabela.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Não é recomendável usar o índice de coluna numérica, pois ele pode mudar quando
    a consulta for alterada ou quando o esquema da tabela for alterado ao 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">O exemplo acima produzirá:</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> retorna valores de uma única coluna.
   Use o segundo argumento de <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span>
   ou <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span> para especificar qual coluna será
   retornada.
  </p>
  <p class="simpara">
   Se a coluna especificada não existir, será lançado um
   <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">O exemplo acima produzirá:</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> retorna pares de valores, indexados pela
   primeira coluna. Os resultados devem conter apenas 2 colunas. Este modo de busca
   só faz sentido com <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">
    Se a primeira coluna não for única, valores serão perdidos.
    Quais valores serão perdidos devem ser considerados indefinidos.
   </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">O exemplo acima produzirá:</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 uma função para criar o valor retornado. Este modo só pode ser usado
   com <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   A função recebe os valores como parâmetros.
   Não há como recuperar o nome da coluna à qual um determinado valor estava associado.
   É crucial garantir que a ordem das colunas na consulta corresponda à
   esperada pela função.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Os efeitos de <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong> e
    <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong> são aplicados aos resultados antes da
    função ser chamada.
   </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">O exemplo acima produzirá:</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> retorna um objeto
   <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>.
  </p>
  <p class="simpara">
   Consulte também <span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname">PDOStatement::fetchObject()</a></span> e
   <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">O exemplo acima produzirá:</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">
   Retorna um objeto de uma classe especificada. Para comportamentos adicionais, consulte os sinalizadores de opções:
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">sinalizadores de opções</a>.
  </p>
  <p class="simpara">
   Se uma propriedade com o nome de uma coluna retornada não existir, ela será
   declarada dinamicamente. Esse comportamento foi descontinuado e causará um erro
   a partir do PHP 9.0.
  </p>
  <p class="simpara">
   Consulte também <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">"Construtor chamado com "</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">"Propriedades definidas quando o construtor foi chamado? "<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">'Sim' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Não'</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">O exemplo acima produzirá
algo semelhante a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Construtor chamado com 0 argumentoss
Propriedades definidas quando o construtor foi chamado? Sim
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 busca só pode ser usado em combinação com
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (e
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">suas outras opções</a>).
  </p>
  <p class="simpara">
   Quando este modo de busca é usado, o PDO usará a primeira coluna retornada como o
   nome da classe a ser retornada.
  </p>
  <p class="simpara">
   Se a classe especificada não for encontrada, um objeto <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span>
   será retornado, sem aviso ou erro.
  </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">"Construtor chamado com "</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">"Propriedades definidas quando o construtor foi chamado? "<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">'Sim' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Não'</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">O exemplo acima produzirá
algo semelhante a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Construtor chamado com 0 argumentos
Propriedades definidas quando o construtor foi chamado? Sim
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 busca só pode ser usado em combinação com
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (e
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">suas outras opções</a>).
  </p>
  <p class="simpara">
   Quando este modo de busca é usado, o construtor será chamado antes que as
   propriedades sejam definidas.
  </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">"Construtor chamado com "</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">"Propriedades definidas quando o construtor foi chamado? "<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">'Sim' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Não'</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">O exemplo acima produzirá
algo semelhante a:</p>
   <div class="example-contents screen">
<div class="cdata"><pre>
Construtor chamado com 0 argumentos
Propriedades definidas quando o construtor foi chamado? Não
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">Aviso</strong><p class="simpara">Este recurso foi
<em>DESCONTINUADO</em> a partir do PHP 8.1.0. O uso deste recurso
é fortemente desencorajado.</p></div>
  <p class="simpara">
   Este modo de busca só pode ser usado em combinação com
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> (e
   <a href="pdo.constants.fetch-modes.php#pdo.fetch-modes.class-flags" class="link">suas outras opções</a>).
  </p>
  <p class="simpara">
   Quando este modo de busca é utilizado, a classe especificada deve ser
   <span class="interfacename"><a href="class.serializable.php" class="interfacename">Serializable</a></span>.
  </p>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    Este recurso não suporta uma string que contenha um objeto serializado completo
    (com <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span>).
   </p>
  </div>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    Este modo de busca não chama o construtor.
   </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">"Construtor chamado com " </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">"Propriedades definidas quando o construtor é chamado? "<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">'Sim' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Não'</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">"Definindo o registro (construtor chamado 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">"\nRecuperando o resultado:\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: O construtor nunca é chamado!<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">O exemplo acima produzirá
algo semelhante 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
Definindo o registro (construtor chamado manualmente):
Construtor chamado com 0 argumentos
Propriedades definidas quando o construtor é chamado? Não

Recuperando o resultado:
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 busca não pode ser usado com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de busca não retorna um resultado diretamente, mas associa valores a
   variáveis ​​especificadas com <span class="methodname"><a href="pdostatement.bindcolumn.php" class="methodname">PDOStatement::bindColumn()</a></span>. O
   método de busca chamado retorna <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">
    Ao usar instruções preparadas, para funcionar corretamente, as variáveis ​​devem ser vinculadas
    após a execução da 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">// Vincule pela posição da coluna para resolver nomes de coluna duplicados<br />// Para evitar que isso cause problemas se a consulta for alterada, use um sinônimo SQL.<br />// Por exemplo: 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">O exemplo acima produzirá:</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 busca não pode ser usado com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de busca atualiza as propriedades do objeto especificado. O objeto é
   retornado em caso de sucesso.
  </p>
  <p class="simpara">
   Se uma propriedade com o nome de uma coluna retornada não existir, ela será
   declarada dinamicamente. Esse comportamento está obsoleto e causará um erro
   a partir do PHP 9.0.
  </p>
  <p class="simpara">
   Propriedades precisam ser <code class="literal">public</code> e não podem ser
   <code class="literal">readonly</code>.
  </p>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    Não há como alterar o objeto a ser atualizado sem usar
    <span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname">PDOStatement::setFetchMode()</a></span> entre a recuperação 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 /></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 /></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 /><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 /></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">O exemplo acima produzirá
algo semelhante 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 busca não pode ser usado com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Este modo de busca retorna um objeto <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> que fornece
   acesso a valores tanto no formato de array quanto no formato de objeto (ou seja, combina o comportamento de
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong> e
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-obj">PDO::FETCH_OBJ</a></code></strong>), recuperados de forma lenta.
  </p>
  <p class="simpara">
   Isso pode fornecer acesso eficiente em termos de memória (no lado do PHP) a resultados não armazenados em buffer
   no servidor de banco de dados. Se o PDO usa buffer no lado do cliente para resultados
   depende do driver específico do banco de dados usado (e de sua configuração).
  </p>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> retornará <code class="literal">NULL</code> sem
    qualquer erro ou aviso ao acessar propriedades ou chaves que não estejam definidas.
    Isso pode dificultar a detecção e depuração de erros como erros de digitação ou consultas
    que não retornam os dados esperados.
   </p>
  </div>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    O objeto <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> retornado é atualizado cada vez que um
    resultado é recuperado.
   </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">"Nome: </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">// Retorna NULL. Nenhum aviso ou erro é emitido.<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"Não 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">// O PDORow recuperado anteriormente agora aponta para o resultado recém-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">O exemplo acima produzirá:</p>
  <div class="example-contents screen">
<div class="cdata"><pre>
ID: 104
Nome: Chris
País: Ukraine
Não 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> retorna listas de arrays associativos,
   indexados por uma coluna (não única). Este modo de busca funciona apenas com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Quando combinado com <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-unique">PDO::FETCH_UNIQUE</a></code></strong>, ambos os modos
   usarão a mesma coluna, tornando a combinação desses modos inútil.
  </p>
  <p class="simpara">
   Esta busca deve ser combinada com uma das seguintes constantes:
   <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> ou
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>.
  </p>
  <p class="simpara">
   Se nenhum modo de busca da lista acima for fornecido, o modo de busca padrão atual
   para o <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> será usado.
  </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">O exemplo acima produzirá:</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">
   No exemplo acima, pode ser observado que a primeira coluna é omitida do
   array de cada linha, estando disponível apenas como chave. Ela pode ser incluída
   repetindo a coluna, como no exemplo a seguir:
  </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">O exemplo acima produzirá:</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> usa a primeira coluna para indexar registros,
   retornando 1 registro por valor de índice. Este modo de busca funciona apenas com
   <span class="methodname"><a href="pdostatement.fetchall.php" class="methodname">PDOStatement::fetchAll()</a></span>.
  </p>
  <p class="simpara">
   Quando combinado com <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-group">PDO::FETCH_GROUP</a></code></strong>, ambos os modos usarão
   a mesma coluna, tornando a combinação desses modos inútil.
  </p>
  <p class="simpara">
   Esta busca deve ser combinada com uma das seguintes constantes
   <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> ou
   <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-func">PDO::FETCH_FUNC</a></code></strong>.
  </p>
  <p class="simpara">
   Se nenhum modo de busca da lista acima for fornecido, o modo de busca padrão atual
   para o <span class="classname"><a href="class.pdostatement.php" class="classname">PDOStatement</a></span> será usado.
  </p>
  <p class="simpara">
   Quando usado com uma coluna que se sabe ser única (como o ID do registro), este
   modo oferece a capacidade de retornar rapidamente resultados indexados por esse valor.
  </p>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <span class="simpara">
    Se a primeira coluna não for única, valores serão perdidos.
    Quais valores serão perdidos devem ser considerados indefinidos.
   </span>
  </p></blockquote>
  <div class="caution"><strong class="caution">Cuidado</strong>
   <p class="simpara">
    A filtragem de registros deve ser feita em SQL sempre que possível.
    O banco de dados usará índices para otimizar esse processo e retornar apenas os registros necessários.
    Selecionar mais registros do que o necessário do banco de dados pode aumentar significativamente o
    uso de memória e o tempo de consulta para conjuntos de resultados maiores.
   </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">O exemplo acima produzirá:</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">
   No exemplo acima, pode ser observado que a primeira coluna é omitida do
   array de cada linha, estando disponível apenas como chave. Ela pode ser incluída
   repetindo a coluna, como no exemplo a seguir:
  </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">O exemplo acima produzirá:</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); ?>