<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mysql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'mysqlinfo.library.choosing.php',
    1 => 'Escolhendo uma biblioteca',
    2 => 'Escolhendo uma biblioteca',
  ),
  'up' => 
  array (
    0 => 'mysql.php',
    1 => 'Vis&atilde;o geral dos drivers PHP para MySQL',
  ),
  'prev' => 
  array (
    0 => 'mysqlinfo.api.choosing.php',
    1 => 'Escolhendo uma API',
  ),
  'next' => 
  array (
    0 => 'mysqlinfo.concepts.php',
    1 => 'Conceitos',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/mysqlinfo/set.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlinfo.library.choosing" class="chapter">
   <h1 class="title">Escolhendo uma biblioteca</h1>

   <p class="simpara">
    As extensões mysqli e PDO_MySQL são encapsuladores leves de uma
    biblioteca cliente em C. As extensões podem tanto usar a biblioteca
    <a href="book.mysqlnd.php" class="link">mysqlnd</a> quanto a biblioteca <code class="literal">libmysqlclient</code>.
    Escolher uma biblioteca é uma decisão a ser tomada na compilação.
   </p>
   <p class="simpara">
    A biblioteca mysqlnd é parte da distribuição PHP. Ela oferece
    recursos como conexões preguiçosas e cache de consultas, que não estão disponíveis
    com a libmysqlclient, portanto usar a biblioteca mysqlnd interna é altamente recomendado.
    Consulte a <a href="book.mysqlnd.php" class="link">documentação mysqlnd</a> para
    detalhes adicionais e uma lista de recursos e funcionalidade que ela oferece.
   </p>
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Comandos de configuração para usar mysqlnd ou libmysqlclient</strong></p>
    <div class="example-contents">
<div class="shellcode"><pre class="shellcode">// Recomendado, compilar com mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternativamente recomendado, compilar com mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// Não recomendado, compila com libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config</pre>
</div>
    </div>

   </div>
   <p class="simpara">
    <strong>Comparação de recursos de bibliotecas</strong>
   </p>
   <p class="simpara">
    É recomendado usar a biblioteca <a href="book.mysqlnd.php" class="link">mysqlnd</a>
    ao invés da biblioteca Cliente-Servidor do MySQL (libmysqlclient). Ambas
    são suportadas e estão constantemente sendo melhoradas.
   </p>
   <table id="mysqlinfo.library.choosing.changelog" class="doctable informaltable">
    
     <thead>
      <tr>
       <th class="empty">&nbsp;</th>
       <th>Driver nativo MySQL (<a href="book.mysqlnd.php" class="link">mysqlnd</a>)</th>
       <th>Biblioteca cliente-servidor MySQL (<code class="literal">libmysqlclient</code>)</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>Faz parte da distribuição PHP</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Versão do PHP em que foi introduzida</td>
       <td>5.3.0</td>
       <td>N/A</td>
      </tr>

      <tr>
       <td>Licença</td>
       <td>Licença PHP 3.01</td>
       <td>Dupla Licença</td>
      </tr>

      <tr>
       <td>Estado de desenvolvimento</td>
       <td>Ativo</td>
       <td>Ativo</td>
      </tr>

      <tr>
       <td>Ciclo de vida</td>
       <td>Nenhum final anunciado</td>
       <td>Nenhum final anunciado</td>
      </tr>

      <tr>
       <td>Padrão de compilação (para todas as extensões MySQL)</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Suporte a protocolo de compressão</td>
       <td>Sim</td>
       <td>Sim</td>
      </tr>

      <tr>
       <td>Suporte a SSL</td>
       <td>Sim</td>
       <td>Sim</td>
      </tr>

      <tr>
       <td>Suporte a tubos nomeados</td>
       <td>Sim</td>
       <td>Sim</td>
      </tr>

      <tr>
       <td>Consultas sem bloqueio assíncronas</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Estatísticas de desempenho</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>LOAD LOCAL INFILE respeita a <a href="ini.core.php#ini.open-basedir" class="link">diretiva open_basedir</a></td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Usa o sistema de gerenciamento de memória nativo do PHP (ex: segue os limites de memória do PHP)</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Retorna coluna numérica como dupla precisão (COM_QUERY)</td>
       <td>Sim</td>
       <td>Não</td>
      </tr>

      <tr>
       <td>Retorna coluna numérica como string (COM_QUERY)</td>
       <td>Sim</td>
       <td>Sim</td>
      </tr>

      <tr>
       <td>API tipo plugin</td>
       <td>Sim</td>
       <td>Limitada</td>
      </tr>

      <tr>
       <td>Reconexão automática</td>
       <td>Não</td>
       <td>Opcional</td>
      </tr>

     </tbody>
    
   </table>

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