<?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 => 'de',
  ),
  'this' => 
  array (
    0 => 'faq.databases.php',
    1 => 'PHP und Datenbanken',
    2 => 'PHP und Datenbanken',
  ),
  'up' => 
  array (
    0 => 'faq.php',
    1 => 'FAQ',
  ),
  'prev' => 
  array (
    0 => 'faq.obtaining.php',
    1 => 'PHP beziehen',
  ),
  'next' => 
  array (
    0 => 'faq.installation.php',
    1 => 'Installation',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    '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">PHP und Datenbanken</h1>

  

  <p class="para">
   Dieser Abschnitt enthält häufige Fragen über die Verbindung von PHP und
   Datenbanken. PHP kann in der Tat auf praktisch jede verfügbare Datenbank
   zugreifen.
  </p>

  <div class="qandaset"><ol class="qandaset_questions"><li><a href="#faq.databases.mssql">
     
      Ich habe geh&ouml;rt, dass es m&ouml;glich ist, den Microsoft SQL-Server aus PHP
      anzusprechen. Wie?
     
    </a></li><li><a href="#faq.databases.access">
     Kann ich auf Microsoft Access-Datenbanken zugreifen?
    </a></li></ol></div>
   <dl class="qandaentry" id="faq.databases.mssql">
    <dt><strong>
     
      Ich habe gehört, dass es möglich ist, den Microsoft SQL-Server aus PHP
      anzusprechen. Wie?
     
    </strong></dt>
    <dd class="answer">
     <p class="para">
      Auf Unix-Rechnern können Sie <a href="ref.pdo-odbc.php" class="link">PDO_ODBC</a>
      oder die <a href="book.uodbc.php" class="link">Unified ODBC API</a> verwenden.
     </p>
     <p class="para">
      Auf Windows-Rechnern können Sie ebenfalls <a href="ref.pdo-sqlsrv.php" class="link">PDO_SQLSRV</a>
      oder <a href="book.sqlsrv.php" class="link">SQLSRV</a> verwenden.
     </p>
     <p class="para">
      Sehen Sie sich auch die Antwort auf die nächste Frage an.
     </p>
    </dd>
   </dl>

   <dl class="qandaentry" id="faq.databases.access">
    <dt><strong>
     Kann ich auf Microsoft Access-Datenbanken zugreifen?
    </strong></dt>
    <dd class="answer">
     <p class="para">
      Wenn Sie PHP auf einem Unix-Rechner betreiben und auf MS Access auf einem
      Windows-Rechner zugreifen wollen, brauchen sie ODBC-Treiber für Unix.
      <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;OpenLink Software</a> bietet Unix-basierte
      ODBC-Treiber an, die dazu geeignet sind.
     </p>
     <p class="para">
      Eine weitere Alternative ist es, einen SQL-Server zu benutzen, der
      ODBC-Treiber für Windows anbietet und diesen dann zu benutzen, um die Daten
      dort abzulegen, um sie dann von Microsoft Access (über ODBC) und PHP (mit
      den mitgelieferten Treibern) aus anzusprechen, oder ein 
      dazwischengeschaltetetes Dateiformat zu benutzen, das sowohl Access als
      auch PHP verstehen, beispielsweise Plaintext oder dBase-Datenbanken.
      Zu diesem Punkt schreibt Tim Hayes von OpenLink Software:
      <blockquote class="blockquote">
       <p class="para">
        Eine andere Datenbank als vermittelndes Element zu benutzen ist keine
        gute Idee, wenn Sie ODBC direkt von PHP aus zur Datenbank benutzen können
        - etwa mit den Openlink-Treibern. Wenn Sie wirklich ein zwischengeschaltetes
        Dateiformat benötigen, hat Openlink jetzt Virtuoso (eine virtuelle 
        Datenbank) für NT, Linux und andere Unix-Plattformen herausgebracht.
        Bitte besuchen Sie unsere <a href="http://www.openlinksw.com/" class="link external">&raquo;&nbsp;Webseite</a>,
        wenn Sie Virtuoso kostenlos herunterladen wollen.
       </p>
      </blockquote>
     </p>
     <p class="para">
      Eine Möglichkeit, die sich als erfolgreich herausgestellt hat, ist die
      Benutzung von MySQL und den MyODBC-Treibern unter Windows, um die
      Datenbanken zu synchronisieren. Steve Lawrence schreibt dazu:
     </p>
     <p class="para">
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         Installieren Sie MySQL wie in der Dokumentation beschrieben auf ihrem
         System. Die neueste Version finden Sie auf 
         <a href="http://www.mysql.com/" class="link external">&raquo;&nbsp;www.mysql.com</a> 
         Es ist keine spezielle Konfiguration nötig, außer dass
         Sie beim Erzeugen einer Datenbank und der Einrichtung des
         Benutzeraccounts im Host-Feld ein % oder den Hostnamen des 
         Windows-Computers, von dem aus Sie zugreifen möchten, eintragen 
         sollten. Notieren Sie sich den Servernamen, Benutzernamen und das 
         Passwort.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Laden Sie die MyODBC for Windows-Treiber von der MySQL-Seite herunter.
         Installieren Sie ihn auf ihrem Windows-Rechner. Sie können
         die Funktionsfähigkeit mit den mitgelieferten Programmen testen.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Erstellen Sie eine Benutzer- oder System-DSN in den ODBC-Optionen in
         der Systemsteuerung. Überlegen Sie sich einen DSN-Namen und geben Sie
         den Hostnamen, Benutzernamen, Passwort, Port, etc ihrer MySQL-Datenbank
         an, die Sie im 1. Schritt konfiguriert haben.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Installieren Sie Access als Vollinstallation. Das stellt sicher, dass
         Sie die richtigen Add-Ins haben. Zumindest benötigen Sie die 
         ODBC-Unterstützung und den Linked-Table-Manager.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Jetzt zum lustigen Teil! Erstellen Sie eine neue Access-Datenbank.
         Rechtsklicken Sie im Tabellenfenster und wählen Sie Link 
         Tables/Tabellen verknüpfen oder im Menü Datei den Punkt Get
         External Data und dann Link Tables/Tabellen verknüpfen. Wenn das
         Dateibrowser-Fenster erscheint, wählen Sie Dateien vom Typ: ODBC.
         Wählen Sie System-DSN und den Namen der DSN, die Sie in Schritt 3
         erstellt haben. Wählen sie die zu verknüpfende Tabelle, klicken Sie
         auf OK und Sie können jetzt die Tabelle öffnen und Daten auf Ihrem
         MySQL-Server hinzufügen/löschen/ändern. Sie können auch Abfragen
         erzeugen, Tabellen importieren und exportieren und Formulare und
         Reports generieren, etc.
        </span>
       </li>
      </ul>
     </p>
     <p class="para">
      Tipps und Tricks:
      <ul class="itemizedlist">
       <li class="listitem">
        <span class="simpara">
         Sie können Ihre Tabellen in Access erstellen und nach MySQL
         exportieren und Sie dann wieder verknüpfen. Das erleichtert
         das Erstellen von Tabellen.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Wenn Sie Tabellen in Access erstellen, müssen Sie einen Primärschlüssel
         definieren, wenn Sie über Access Schreibzugriff haben wollen.
         Vergewissern Sie sich, dass sie einen Primärschlüssel in MySQL
         erzeugen, bevor Sie die Tabelle in Access verknüpfen.
        </span>
       </li>
       <li class="listitem">
        <span class="simpara">
         Wenn Sie ein Tabelle in MySQL ändern, müssen Sie sie in Access neu
         verknüpfen. Rufen Sie Tools&gt;add-ins&gt;linked table manager auf,
         suchen Sie ihre ODBC-DSN, und wählen Sie die Tabelle aus, die neu
         verknüpft werden soll. Sie können Ihre DSN-Quelle auch verschieben,
         wenn Sie die &quot;always prompt for new location&quot;-Checkbox ankreuzen,
         bevor Sie OK klicken.
        </span>
       </li>
      </ul>
     </p>
    </dd>
   </dl>
  
 </div>
<?php manual_footer($setup); ?>