<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.mysqlnd.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'mysqlnd.overview.php',
    1 => 'Introduction',
    2 => 'Introduction',
  ),
  'up' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'prev' => 
  array (
    0 => 'book.mysqlnd.php',
    1 => 'Mysqlnd',
  ),
  'next' => 
  array (
    0 => 'mysqlnd.install.php',
    1 => 'Installation',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/mysqlnd/overview.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlnd.overview" class="chapter">
 <h1 class="title">Introduction</h1>

 <p class="simpara">
  <strong>Ce que ce n&#039;est pas</strong>
 </p>
 <p class="simpara">
  Bien que le pilote natif MySQL soit écrit comme une extension PHP, il est important
  de noter qu&#039;il ne fournit pas une nouvelle API au programmeur PHP. Les API programmeur
  sont fournies par l&#039;extension MySQL, <code class="literal">mysqli</code> et PDO
  MySQL. Ces extensions peuvent maintenant utiliser les services du pilote natif MySQL pour communiquer
  avec le serveur MySQL. Ainsi, il ne faut pas considérer le pilote natif MySQL comme une API.
 </p>
 <p class="simpara">
  <strong>Pourquoi l&#039;utiliser?</strong>
 </p>
 <p class="simpara">
  Utiliser le pilote natif MySQL offre bon nombre d&#039;avantages par rapport à
  la bibliothèque MySQL cliente.
 </p>
 <p class="simpara">
  L&#039;ancienne bibliothèque MySQL cliente a été écrite par MySQL AB (maintenant
  partie d&#039;Oracle Corporation) et a donc été publiée sous licence MySQL,
  ce qui a eu pour conséquence de désactiver le support de MySQL par défaut
  dans PHP. Vu que le pilote natif MySQL a été développé comme partie intégrante
  du projet PHP, il est publié sous licence PHP, ce qui résout les soucis
  de licence problématique dans le passé.
 </p>
 <p class="simpara">
  De plus, auparavant, on devait compiler les extensions de base de données
  MySQL par rapport à une copie de la bibliothèque MySQL cliente, ce qui signifie qu&#039;on devait avoir MySQL d&#039;installé sur la machine sur laquelle l&#039;on compile PHP à
  partir des sources. Ainsi, quand l&#039;application PHP était exécutée, les extensions
  MySQL appelaient les fichiers de la bibliothèque MySQL cliente au démarrage, ceux-ci devant
  être obligatoirement installés sur le système. Avec le pilote natif MySQL, ce n&#039;est plus le cas
  car il est inclus dans la distribution standard. Ainsi, l&#039;on n&#039;aura plus besoin d&#039;avoir MySQL
  installé pour compiler PHP ou exécuter des applications PHP faisant appel à une base de données.
 </p>
 <p class="simpara">
  Du fait que le pilote natif MySQL soit écrit comme une extension PHP, il est intimement
  lié au cœur de PHP. Ceci implique une meilleure efficacité, notamment en ce qui concerne
  l&#039;utilisation de la mémoire, car le pilote utilise l&#039;allocation mémoire de PHP et par
  conséquent supporte les limites de mémoire. Utiliser le pilote natif MySQL aboutit à des
  performances égales sinon meilleures qu&#039;avec la bibliothèque cliente MySQL, car l&#039;utilisation
  de la mémoire est beaucoup plus efficace. Le fait que lors de l&#039;utilisation de la bibliothèque cliente
  MySQL, chaque enregistrement est stocké deux fois en mémoire alors que le client natif MySQL ne les
  stocke qu&#039;une fois constitue un bon exemple de bonne gestion de la mémoire.
 </p>
 <blockquote class="note"><p><strong class="note">Note</strong>: 
  <strong>Surveillance de l&#039;utilisation mémoire</strong><br />
  <span class="simpara">
   En raison du fait que le driver natif MySQL utilise le système de gestion mémoire
   de PHP, son utilisation mémoire peut être surveillée avec la fonction
   <span class="function"><a href="function.memory-get-usage.php" class="function">memory_get_usage()</a></span>. Ceci n&#039;est pas possible
   avec la bibliothèque libmysqlclient car elle utilise la fonction C malloc() à
   la place.
  </span>
 </p></blockquote>
 <p class="simpara">
  <strong>Fonctionnalités spéciales</strong>
 </p>
 <p class="simpara">
  Le pilote natif MySQL fournit aussi quelques fonctionnalités spéciales non
  disponibles avec la bibliothèque cliente MySQL, listées ci-dessous :
 </p>
 <ul class="itemizedlist">
  <li class="listitem">
   <span class="simpara">
    Des connexions persistantes améliorées
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    La fonction spéciale <span class="function"><a href="mysqli-result.fetch-all.php" class="function">mysqli_fetch_all()</a></span>
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Des appels aux statistiques de performance :
    <span class="function"><a href="function.mysqli-get-client-stats.php" class="function">mysqli_get_client_stats()</a></span>,
    <span class="function"><a href="mysqli.get-connection-stats.php" class="function">mysqli_get_connection_stats()</a></span>
   </span>
  </li>
 </ul>
 <p class="simpara">
  Les statistiques de performances peuvent s&#039;avérer très utiles pour identifier
  des goulets d&#039;étranglement de performances.
 </p>
 <p class="simpara">
  Le pilote natif MySQL fournit aussi des connexions persistantes lors de son
  utilisation avec l&#039;extension <code class="literal">mysqli</code>.
 </p>
 <p class="simpara">
  <strong>Le support de SSL</strong>
 </p>
 <p class="simpara">
  Le pilote natif MySQL (MySQL Native Driver) supporte SSL.
 </p>
  <p class="simpara">
  <strong>Le support du protocole compressé</strong>
  </p>
  <p class="simpara">
   Le pilote natif MySQL supporte le protocole client/serveur MySQL compressé.
   L&#039;extension <code class="literal">ext/mysqli</code> si configurée pour utiliser le pilote
   natif MySQL peut aussi tirer avantage de cette fonctionnalité.
   Il est à noter que <code class="literal">PDO_MYSQL</code> ne supporte
   <em>PAS</em> la compression lorsqu&#039;utilisé avec mysqlnd.
  </p>
 <p class="simpara">
  <strong>Support des pipes nommés</strong>
 </p>
 <p class="simpara">
  Les pipes nommés peuvent être utilisés pour se connecter sous Windows.
 </p>
</div>
<?php manual_footer($setup); ?>