<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'mysqli.quickstart.dual-interface.php',
    1 => 'Interface dupla, procedural e orientada a objetos',
    2 => 'Interface dupla, procedural e orientada a objetos',
  ),
  'up' => 
  array (
    0 => 'mysqli.quickstart.php',
    1 => 'Guia de in&iacute;cio r&aacute;pido',
  ),
  'prev' => 
  array (
    0 => 'mysqli.quickstart.php',
    1 => 'Guia de in&iacute;cio r&aacute;pido',
  ),
  'next' => 
  array (
    0 => 'mysqli.quickstart.connections.php',
    1 => 'Conex&otilde;es',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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">Interface dupla, procedural e orientada a objetos</h2>
  <p class="para">
   A extensão mysqli possibilita uma dupla interface. Ela suporta o paradigma de programação
   procedural e orientada a objetos.
  </p>
  <p class="para">
   Usuários que estão migrando da extensão antiga mysql podem preferir a interface
   procedural. Esta interface é similar àquela da extensão antiga
   mysql. Em muitos casos, os nomes das funções diferem apenas pelo prefixo.
   Algumas funções mysqli levam um manipulador de conexão como seu primeiro argumento,
   enquanto as funções análogas na antiga interface mysql levam este manipulador
   como o último argumento, opcional.
  </p>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Migração fácil da antiga extensão mysql</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 'Por favor não use a extensão mysql descontinuada para novos desenvolvimentos. ' 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 'Use a extensão mysqli em seu lugar.' 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>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Por favor não use a extensão mysql descontinuada para novos desenvolvimentos. Use a extensão mysqli em seu lugar.
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <strong>A interface orientada a objetos</strong>
  </p>
  <p class="para">
   Em adição à clássica interface procedural, usuários podem escolher usar
   a interface orientada a objetos. A documentação está organizada utilizando
   a interface orientada a objetos. Ela mostra funções
   agrupadas por propósito, tornando a iniciação mais fácil. A seção de referência
   dá exemplos para ambas as variantes de sintaxe.
  </p>
  <p class="para">
   Não há diferenças significativas de desempenho entre as duas interfaces.
   Usuários podem basear suas escolhas em preferências pessoais.
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Exemplo #2 Interface orientada a objeto e procedural</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 'Um mundo cheio de ' 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 'escolhas para agradar a todos.' 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>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Um mundo cheio de escolhas para agradar a todos.
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   A interface orientada a objetos é usada neste guia porque a
   seção de referência está organizada dessa forma.
  </p>
  <p class="para">
   <strong>Misturando estilos</strong>
  </p>
  <p class="para">
   É possível trocar de estilos a qualquer momento. Misturar ambos os estilos
   não é recomendado por questões de clareza e estilo de código.
  </p>
  <p class="para">
   <div class="example" id="example-3">
    <p><strong>Exemplo #3 Estilo de código ruim</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 'Estilo possível, porém, ruim.' 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>O exemplo acima produzirá:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
Estilo possível, porém, ruim.
</pre></div>
    </div>
   </div>
  </p>
  <p class="para">
   <strong>Veja também</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">Resumo das Funções da Extensão MySQLi</a></li>
   </ul>
  </p>
 </div><?php manual_footer($setup); ?>