<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mysqli.quickstart.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'mysqli.quickstart.dual-interface.php',
    1 => 'Prozedurale und objektorientierte Schnittstelle',
    2 => 'Prozedurale und objektorientierte Schnittstelle',
  ),
  'up' => 
  array (
    0 => 'mysqli.quickstart.php',
    1 => 'Kurzanleitung f&uuml;r den schnellen Einstieg',
  ),
  'prev' => 
  array (
    0 => 'mysqli.quickstart.php',
    1 => 'Kurzanleitung f&uuml;r den schnellen Einstieg',
  ),
  'next' => 
  array (
    0 => 'mysqli.quickstart.connections.php',
    1 => 'Datenbankverbindungen',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'reference/mysqli/quickstart.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqli.quickstart.dual-interface" class="section">
  <h2 class="title">Prozedurale und objektorientierte Schnittstelle</h2>
  <p class="para">
   Die mysqli-Erweiterung verfügt über eine doppelte Schnittstelle. Sie
   unterstützt das prozedurale und das objektorientierte Programmier-Paradigma.
  </p>
  <p class="para">
   Benutzer, die von der alten mysql-Erweiterung umsteigen, werden vielleicht
   die prozedurale Schnittstelle bevorzugen. Die prozedurale Schnittstelle ist
   ähnlich wie die der alten mysql Erweiterung. In vielen Fällen unterscheiden
   sich die Funktionsnamen nur durch das Präfix. Einige mysqli-Funktionen
   benötigen ein Verbindungs-Handle als ersten Parameter, während
   entsprechende Funktionen der alten mysql-Schnittstelle es als optionalen
   letzten Parameter nehmen.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Beispiel #1 Einfacher Umstieg von der alten mysql-Erweiterung</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$mysqli </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #DD0000">"user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"database"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT 'Bitte verwenden Sie nicht die veraltete mysql-Erweiterung für neue Projekte. ' AS _msg FROM DUAL"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'_msg'</span><span style="color: #007700">];<br /><br /></span><span style="color: #0000BB">$mysql </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #DD0000">"user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">mysql_select_db</span><span style="color: #007700">(</span><span style="color: #DD0000">"test"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT 'Verwenden Sie stattdessen die mysqli-Erweiterung.' AS _msg FROM DUAL"</span><span style="color: #007700">, </span><span style="color: #0000BB">$mysql</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">mysql_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'_msg'</span><span style="color: #007700">];</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Bitte verwenden Sie nicht die veraltete mysql-Erweiterung für neue Projekte. Verwenden Sie stattdessen die mysqli-Erweiterung.
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <strong>Die objektorientierte Schnittstelle</strong>
  </p>
  <p class="para">
   Neben der klassischen prozeduralen Schnittstelle kann der Benutzer auch die
   objektorientierte Schnittstelle verwenden. Die Dokumentation ist anhand der
   objektorientierten Schnittstelle gegliedert. Um den Einstieg zu
   erleichtern, sind die Funktionen der objektorientierten Schnittstelle nach
   ihrem Zweck gruppiert. Der Referenzteil enthält Beispiele für beide
   Syntaxvarianten.
  </p>
  <p class="para">
   Es gibt keine signifikanten Leistungsunterschiede zwischen den beiden
   Schnittstellen. Der Benutzer kann seine Wahl nach persönlichen Vorlieben
   treffen.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Beispiel #2 Objektorientierte und prozedurale Schnittstelle</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$mysqli </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">"example.com"</span><span style="color: #007700">, </span><span style="color: #DD0000">"user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"database"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT 'A world full of ' AS _msg FROM DUAL"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_fetch_assoc</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'_msg'</span><span style="color: #007700">];<br /><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">"user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"database"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT 'choices to please everybody.' AS _msg FROM DUAL"</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">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'_msg'</span><span style="color: #007700">];</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
A world full of choices to please everybody.
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   Für die Kurzanleitung wird die objektorientierte Schnittstelle verwendet,
   weil der Referenzabschnitt entsprechend aufgebaut ist.
  </p>
  <p class="para">
   <strong>Stile miteinander kombinieren</strong>
  </p>
  <p class="para">
   Es ist jederzeit möglich, zwischen den Stilen zu wechseln. Das Kombinieren
   beider Stile wird aus Gründen des Programmierstils und der Verständlichkeit
   des Codes nicht empfohlen.
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Beispiel #3 Schlechter Programmierstil</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$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">"user"</span><span style="color: #007700">, </span><span style="color: #DD0000">"password"</span><span style="color: #007700">, </span><span style="color: #DD0000">"database"</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">mysqli_query</span><span style="color: #007700">(</span><span style="color: #0000BB">$mysqli</span><span style="color: #007700">, </span><span style="color: #DD0000">"SELECT 'Möglich, aber schlechter Stil.' AS _msg FROM DUAL"</span><span style="color: #007700">);<br /><br />if (</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">$row</span><span style="color: #007700">[</span><span style="color: #DD0000">'_msg'</span><span style="color: #007700">];<br />}</span></span></code></div>
    </div>

    <div class="example-contents"><p>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Möglich, aber schlechter Stil.
</pre></div>
    </div>
    </div>
  </p>
  <p class="para">
   <strong>Siehe auch</strong>
  </p>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="mysqli.construct.php" class="methodname">mysqli::__construct()</a></span></li>
    <li><span class="methodname"><a href="mysqli.query.php" class="methodname">mysqli::query()</a></span></li>
    <li><span class="methodname"><a href="mysqli-result.fetch-assoc.php" class="methodname">mysqli_result::fetch_assoc()</a></span></li>
    <li><a href="mysqli.connect-errno.php" class="link">$mysqli::connect_errno</a></li>
    <li><a href="mysqli.connect-error.php" class="link">$mysqli::connect_error</a></li>
    <li><a href="mysqli.errno.php" class="link">$mysqli::errno</a></li>
    <li><a href="mysqli.error.php" class="link">$mysqli::error</a></li>
    <li><a href="mysqli.summary.php" class="link">Übersicht über die Funktionen der MySQLi-Erweiterung</a></li>
   </ul>
  </p>
 </div><?php manual_footer($setup); ?>