<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/faq.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'faq.databases.php',
    1 => 'Consid&eacute;rations sur les bases de donn&eacute;es',
    2 => 'Consid&eacute;rations sur les bases de donn&eacute;es',
  ),
  'up' => 
  array (
    0 => 'faq.php',
    1 => 'FAQ',
  ),
  'prev' => 
  array (
    0 => 'faq.obtaining.php',
    1 => 'Obtenir PHP',
  ),
  'next' => 
  array (
    0 => 'faq.installation.php',
    1 => 'Installation',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'faq/databases.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="faq.databases" class="chapter">
  <h1 class="title">Considérations sur les bases de données</h1>

  

  <p class="para">
   Cette section traite de questions relatives aux relations entre PHP et
   les bases de données. Oui, PHP peut accéder virtuellement à
   n&#039;importe quelle base de données disponible aujourd&#039;hui.
  </p>

  <div class="qandaset"><ol class="qandaset_questions"><li><a href="#faq.databases.mssql">
     
      J&#039;ai entendu dire qu&#039;il &eacute;tait possible d&#039;acc&eacute;der &agrave; Microsoft SQL Server
      &agrave; partir de PHP. Comment est-ce possible ?
     
    </a></li><li><a href="#faq.databases.access">
     Puis-je acc&eacute;der &agrave; des bases Microsoft Access ?
    </a></li></ol></div>
   <dl class="qandaentry" id="faq.databases.mssql">
    <dt><strong>
     
      J&#039;ai entendu dire qu&#039;il était possible d&#039;accéder à Microsoft SQL Server
      à partir de PHP. Comment est-ce possible ?
     
    </strong></dt>
    <dd class="answer">
     <p class="para">
      Sur les machines UNIX, il est possible d&#039;utiliser <a href="ref.pdo-odbc.php" class="link">PDO_ODBC</a>
      ou <a href="book.uodbc.php" class="link">Unified ODBC API</a>.
     </p>
     <p class="para">
      Sur les machines Windows, il est également possible d&#039;utiliser <a href="ref.pdo-sqlsrv.php" class="link">PDO_SQLSRV</a>
      ou <a href="book.sqlsrv.php" class="link">SQLSRV</a>.
      </p>
     <p class="para">
      Consulter aussi la réponse à la question suivante.
     </p>
    </dd>
   </dl>

   <dl class="qandaentry" id="faq.databases.access">
    <dt><strong>
     Puis-je accéder à des bases Microsoft Access ?
    </strong></dt>
    <dd class="answer">
     <p class="para">
      Lors de l&#039;utilisation de PHP sur une machine Unix pour se
      connecter à une base Access sur une machine Windows, il faudra
      des pilotes ODBC Unix.
      <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;OpenLink Software</a> fournit des
      pilotes ODBC pour Unix qui peuvent le faire.
     </p>
     <p class="para">
      Une autre solution consiste à utiliser un serveur SQL qui a des pilotes
      ODBC Windows et l&#039;utiliser pour stocker les données, accessibles
      à partir de Microsoft Access (en utilisant ODBC) et PHP (en
      utilisant les pilotes inclus), ou bien utiliser un format de fichier
      intermédiaire que Access et PHP peuvent traiter tous les deux, comme
      des fichiers bruts ou des bases de données dBase. À ce sujet, Tim Hayes
      de Openlink software écrit :
      <blockquote class="blockquote">
       <p class="para">
        Utiliser une autre base de données comme intermédiaire n&#039;est pas une
        bonne idée lorsqu&#039;il est possible d&#039;utiliser ODBC de PHP directement vers
        les bases de données - par exemple avec les pilotes Openlink. En cas de
        besoin d&#039;un format de fichier intermédiaire, Openlink a publié
        Virtuoso (un moteur de base de données virtuel) pour NT, Linux et
        d&#039;autres plates-formes Unix. Consulter le <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;site</a> pour un téléchargement gratuit.
       </p>
      </blockquote>
     </p>
     <p class="para">
      Une solution qui a fait ses preuves est d&#039;utiliser MySQL et ses pilotes
      MyODBC sous Windows et de synchroniser les bases de données. Steve Lawrence
      écrit :
     </p>
     <p class="para">
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         Installer MySQL sur la plate-forme conformément aux instructions
         de MySQL. Il est disponible sur <a href="http://www.mysql.com/" class="link external">&raquo;&nbsp;http://www.mysql.com/</a>. Aucune
         configuration particulière n&#039;est nécessaire, mis à part que lorsque
         l&#039;on configure une base de données et un compte utilisateur, il
         faille spécifier % dans le champ host, ou bien le nom de la machine
         Windows avec laquelle on souhaite accéder à MySQL. Noter le
         nom de serveur, d&#039;utilisateur et le mot de passe.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Télécharger les pilotes MyODBC pour Windows à partir du site de
         MySQL. Les installer sur la machine Windows. Il est possible de tester
         l&#039;installation avec les utilitaires fournis avec les pilotes.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Créer un utilisateur ou une source de données système dans
         l&#039;administration ODBC, dans le panneau de configuration. Donner un nom
         de source de données dsn, entrer le nom d&#039;hôte, identifiant, mot
         de passe, port, etc. pour la base de données configurée à l&#039;étape 1.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Installer Access avec une installation complète pour être sûr d&#039;avoir
         tous les composants nécessaires... Il faudra au moins le
         support ODBC et le gestionnaire de tables liées.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Maintenant, la partie amusante ! Créer un accès à une base de données.
         Dans la fenêtre de la table, cliquer droit et sélectionner Lier les
         Tables, ou, dans le menu Fichier, sélectionner Obtenir des données
         externes et alors Lier les Tables.
         Quand la fenêtre de gestion de fichiers apparaît, sélectionner les
         fichiers de type : ODBC. Sélectionner dsn Système et le nom de la
         dsn créée à l&#039;étape 3. Sélectionner la table à lier, cliquer sur OK,
         et voilà ! Il est maintenant possible d&#039;ouvrir la table et
         ajouter/supprimer/éditer des données sur le serveur MySQL. Il est
         ainsi possible d&#039;exécuter des requêtes, importer/exporter des tables vers
         MySQL, construire des formulaires et des rapports, etc.
        </span>
       </li>
      </ul>
     </p>
     <p class="para">
      Trucs et astuces :
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         Il est possible de construire les tables dans Access et de les exporter dans
         MySQL, puis de les lier de nouveau. Cela rend la création de table très
         rapide.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Lors de la création de tables dans Access, il faut avoir une clé
         primaire définie pour avoir accès en écriture à la table. Il faut s&#039;assurer
         d&#039;avoir bien créé une clé primaire dans MySQL avant de
         lier le tout à Access.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Lors d&#039;une modification de table dans MySQL, il faut la lier de nouveau à
         Access. Aller dans Outils&gt;suppléments&gt;gestionnaire de tables
         liées, chercher la DSN ODBC, et sélectionner la table à lier de
         nouveau. Il est aussi possible de changer la source dsn à partir de là,
         en cliquant sur l&#039;option toujours demander pour un nouvel emplacement
         avant de presser OK.
        </span>
       </li>
      </ul>
     </p>
    </dd>
   </dl>
  
 </div>
<?php manual_footer($setup); ?>