<?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 => 'es',
  ),
  'this' => 
  array (
    0 => 'mysqlinfo.library.choosing.php',
    1 => 'Elegir una biblioteca',
    2 => 'Elegir una biblioteca',
  ),
  'up' => 
  array (
    0 => 'mysql.php',
    1 => 'Visi&oacute;n general de los drivers PHP MySQL',
  ),
  'prev' => 
  array (
    0 => 'mysqlinfo.api.choosing.php',
    1 => 'Elegir una API',
  ),
  'next' => 
  array (
    0 => 'mysqlinfo.concepts.php',
    1 => 'Conceptos',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    '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">Elegir una biblioteca</h1>

   <p class="simpara">
    Las extensiones PHP mysqli y PDO_MySQL son envolventes ligeras de una
    biblioteca cliente C. Las extensiones pueden utilizar la biblioteca
    <a href="book.mysqlnd.php" class="link">mysqlnd</a>, o la biblioteca <code class="literal">libmysqlclient</code>.
    La elección de la biblioteca se realiza en el momento de la compilación.
   </p>
   <p class="simpara">
    La biblioteca mysqlnd forma parte de la distribución de PHP.
    Ofrece funcionalidades como conexiones perezosas,
    caché de consultas, que no están disponibles con libmysqlclient,
    por lo que se recomienda utilizar la biblioteca interna mysqlnd.
    Ver la <a href="book.mysqlnd.php" class="link">documentación de mysqlnd</a>
    para obtener más información, así como una lista de las funcionalidades que ofrece.
   </p>
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Comando de configuración para el uso de mysqlnd o libmysqlclient</strong></p>
    <div class="example-contents">
<div class="shellcode"><pre class="shellcode">// Recomendado, compilación con mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

// Alternativamente recomendado, compilación con mysqlnd
$ ./configure --with-mysqli --with-pdo-mysql

// No recomendado, compilación con libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config</pre>
</div>
    </div>

   </div>
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Comparación de las instrucciones preparadas</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// mysqli<br /></span><span style="color: #0000BB">$mysqli </span><span style="color: #007700">= new </span><span style="color: #0000BB">mysqli</span><span style="color: #007700">(</span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #DD0000">"usuario"</span><span style="color: #007700">, </span><span style="color: #DD0000">"contraseña"</span><span style="color: #007700">, </span><span style="color: #DD0000">"base de datos"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$statement </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT District FROM City WHERE Name=?"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$statement</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">([</span><span style="color: #DD0000">"Amersfoort"</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$statement</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_result</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch_assoc</span><span style="color: #007700">();<br />echo </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'District'</span><span style="color: #007700">]);<br /><br /></span><span style="color: #FF8000">// PDO<br /></span><span style="color: #0000BB">$pdo </span><span style="color: #007700">= new </span><span style="color: #0000BB">PDO</span><span style="color: #007700">(</span><span style="color: #DD0000">'mysql:host=example.com;dbname=base de datos'</span><span style="color: #007700">, </span><span style="color: #DD0000">'usuario'</span><span style="color: #007700">, </span><span style="color: #DD0000">'contraseña'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$statement </span><span style="color: #007700">= </span><span style="color: #0000BB">$pdo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT District FROM City WHERE Name=?"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$statement</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">([</span><span style="color: #DD0000">"Amersfoort"</span><span style="color: #007700">]);<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$statement</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 />echo </span><span style="color: #0000BB">htmlentities</span><span style="color: #007700">(</span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'District'</span><span style="color: #007700">]);</span></span></code></div>
    </div>

   </div>
   <p class="simpara">
    <strong>Comparación de funcionalidades de las bibliotecas</strong>
   </p>
   <p class="simpara">
    Se recomienda utilizar la biblioteca <a href="book.mysqlnd.php" class="link">mysqlnd</a>
    en lugar de la biblioteca cliente servidor MySQL (libmysqlclient). Ambas bibliotecas
    son soportadas y mejoradas continuamente.
   </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>Forma parte de la distribución de PHP</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Introducido en versión de PHP</td>
       <td>5.3.0</td>
       <td>N/A</td>
      </tr>

      <tr>
       <td>Licencia</td>
       <td>Licencia PHP 3.01</td>
       <td>Doble licencia</td>
      </tr>

      <tr>
       <td>Estado de desarrollo</td>
       <td>Activo</td>
       <td>Activo</td>
      </tr>

      <tr>
       <td>Ciclo de vida</td>
       <td>Sin fin anunciado</td>
       <td>Sin fin anunciado</td>
      </tr>

      <tr>
       <td>Compilado por defecto (para todas las extensiones MySQL)</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Soporte del protocolo de compresión</td>
       <td>Sí</td>
       <td>Sí</td>
      </tr>

      <tr>
       <td>Soporte de SSL</td>
       <td>Sí</td>
       <td>Sí</td>
      </tr>

      <tr>
       <td>Soporte de pipes nombrados</td>
       <td>Sí</td>
       <td>Sí</td>
      </tr>

      <tr>
       <td>Consultas no bloqueantes, asíncronas</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Estadísticas de rendimiento</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>LOAD LOCAL INFILE respeta la <a href="ini.core.php#ini.open-basedir" class="link">directiva open_basedir</a></td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Uso del sistema de gestión de memoria nativo de PHP
        (es decir, sigue los límites de memoria de PHP)</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Devuelve las columnas numéricas en forma de double (COM_QUERY)</td>
       <td>Sí</td>
       <td>No</td>
      </tr>

      <tr>
       <td>Devuelve las columnas numéricas en forma de string (COM_QUERY)</td>
       <td>Sí</td>
       <td>Sí</td>
      </tr>

      <tr>
       <td>API del plugin</td>
       <td>Sí</td>
       <td>Limitada</td>
      </tr>

      <tr>
       <td>Reconexión automática</td>
       <td>No</td>
       <td>Opcional</td>
      </tr>

     </tbody>
    
   </table>

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