<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/pdo.drivers.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'ref.pdo-odbc.php',
    1 => 'Driver PDO do ODBC e do DB2',
    2 => 'Driver PDO do ODBC e do DB2 (PDO_ODBC)',
  ),
  'up' => 
  array (
    0 => 'pdo.drivers.php',
    1 => 'Drivers do PDO',
  ),
  'prev' => 
  array (
    0 => 'ref.pdo-oci.connection.php',
    1 => 'PDO_OCI DSN',
  ),
  'next' => 
  array (
    0 => 'ref.pdo-odbc.connection.php',
    1 => 'PDO_ODBC DSN',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/pdo_odbc/reference.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/ref.pdo-odbc.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="ref.pdo-odbc" class="reference">
 
 <h1 class="title">Driver PDO do ODBC e do DB2 (PDO_ODBC)</h1>
 
 <div class="partintro">

  <div class="section" id="ref.pdo-odbc.intro">
  <h2 class="title">Introdução</h2>
   <p class="para">
    PDO_ODBC é um driver que implementa a interface aos <a href="book.pdo.php#intro.pdo" class="link"> Objetos
    de Dados PHP (PDO)</a>
    para permitir acesso do PHP a bancos de dados através de drivers ODBC ou através da
    biblioteca IBM DB2 Call Level Interface (DB2 CLI). O PDO_ODBC atualmente suporta
    três diferentes &quot;sabores&quot; de drivers de banco de dados:
    <dl>
     
      <dt>ibm-db2</dt>
      <dd>
       <p class="para">
        Suporta acesso aos servidores IBM DB2 Universal Database, Cloudscape e
        Apache Derby por meio do cliente DB2 express-C gratuito.
       </p>
      </dd>
     
     
      <dt>unixODBC</dt>
      <dd>
       <p class="para">
        Suporta acesso a servidores de banco de dados por meio do gerenciador de driver
        unixODBC e dos próprios drivers ODBC do banco de dados.
       </p>
      </dd>
     
     
      <dt>generic</dt>
      <dd>
       <p class="para">
        Oferece uma opção de compilação para gerenciadores de driver ODBC que
        não são explicitamente suportados por PDO_ODBC.
       </p>
      </dd>
     
    </dl>
   </p>
   <p class="para">
    No Windows, <var class="filename">php_pdo_odbc.dll</var> deve estar habilitado como
    extensão no <var class="filename">php.ini</var>. Ele está vinculado
    ao Windows ODBC Driver Manager para que o PHP possa se conectar a qualquer
    banco de dados catalogado como um DSN de sistema.
   </p>
  </div>

  
  

<div class="section" id="ref.pdo-odbc.installation">
 <h2 class="title">Instalação</h2>
 <div class="procedure">
  <strong class="title">PDO_ODBC em sistemas UNIX</strong>
  <ol type="1"><li>
   <p class="para">
    PDO_ODBC está incluído no código-fonte do PHP. Pode-se compilar a
    extensão PDO_ODBC como um módulo estático ou compartilhado usando os seguintes
    comandos <strong class="command">configure</strong>.
    <dl>
     
      <dt>ibm_db2</dt>
      <dd>
       <p class="para">
        <div class="example-contents screen"><div class="cdata"><pre>
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
</pre></div></div>
        Para construir o PDO_ODBC com o tipo ibm-db2, é necessário ter
        os cabeçalhos de desenvolvimento do aplicativo DB2 instalados previamente
        na mesma máquina em que o PDO_ODBC estiver sendo compilado. Os cabeçalhos de
        desenvolvimento de aplicativos DB2 são uma opção instalável nos servidores DB2 e
        também estão disponíveis como parte do DB2 Application Development Client,
        gratuitamente no
        <a href="https://www.ibm.com/developerworks/downloads/im/db2express/index.html" class="link external">&raquo;&nbsp;site do IBM developerWorks</a>.
       </p>
       <p class="para">
        Se não for informado um local para as bibliotecas e cabeçalhos do
        DB2 para o comando <strong class="command">configure</strong>, o PDO_ODBC usará o caminho padrão
        <var class="filename">/home/db2inst1/sqllib</var>.
       </p>
      </dd>
     
     
      <dt>unixODBC</dt>
      <dd>
       <p class="para">
        <div class="example-contents screen"><div class="cdata"><pre>
./configure --with-pdo-odbc=unixODBC,/usr/local
</pre></div></div>
        Se não for informado um local para as bibliotecas e cabeçalhos
        unixODBC para o comando <strong class="command">configure</strong>, o PDO_ODBC usará o caminho padrão
        <var class="filename">/usr/local</var>.
       </p>
      </dd>
     
     
      <dt>generic</dt>
      <dd>
       <div class="example-contents screen"><div class="cdata"><pre>
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
</pre></div></div>
      </dd>
     
    </dl>
   </p>
  </li>
 </ol></div>
</div>



  
  


<div class="section" id="pdo-odbc.global.constants">
 <h2 class="title">Constantes predefinidas</h2>
 <p class="simpara">As constantes abaixo são definidas por
este driver e só estarão disponíveis quando a extensão tiver sido
compilada no PHP ou tiver sido carregada dinamicamente em tempo de execução. Além disso, estas
constantes específicas do driver só devem ser usadas se este driver estiver sendo usado.
Usar atributos específicos de um driver com outro driver pode resultar em
comportamento inesperado. <span class="function"><a href="pdo.getattribute.php" class="function">PDO::getAttribute()</a></span> pode ser usada para
obter o atributo <strong><code><a href="pdo.constants.php#pdo.constants.attr-driver-name">PDO::ATTR_DRIVER_NAME</a></code></strong> para verificar o
driver, se o código puder ser executado com vários drivers.</p>
 <dl>
  
   <dt id="constant.pdo-odbc-type">
    <strong><code><a href="ref.pdo-odbc.php#constant.pdo-odbc-type">PDO_ODBC_TYPE</a></code></strong>
    (<span class="type"><a href="language.types.string.php" class="type string">string</a></span>)
   </dt>
   <dd>
    <p class="para">

    </p>
   </dd>
  
  
   <dt id="pdo.constants.odbc-attr-use-cursor-library">
    <strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-attr-use-cursor-library">PDO::ODBC_ATTR_USE_CURSOR_LIBRARY</a></code></strong>
     (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <span class="simpara">
     Sinônimo de <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.attr-use-cursor-library">Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY</a></code></strong>.
    </span>
   </dd>
  
  
   <dt id="pdo.constants.odbc-sql-use-if-needed">
    <strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-if-needed">PDO::ODBC_SQL_USE_IF_NEEDED</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <span class="simpara">
     Sinônimo de <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-if-needed">Pdo\Odbc::SQL_USE_IF_NEEDED</a></code></strong>.
    </span>
   </dd>
  
  
   <dt id="pdo.constants.odbc-sql-use-driver">
    <strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-driver">PDO::ODBC_SQL_USE_DRIVER</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <span class="simpara">
     Sinônimo de <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-driver">Pdo\Odbc::SQL_USE_DRIVER</a></code></strong>.
    </span>
   </dd>
  
  
   <dt id="pdo.constants.odbc-sql-use-odbc">
    <strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-sql-use-odbc">PDO::ODBC_SQL_USE_ODBC</a></code></strong>
    (<span class="type"><a href="language.types.integer.php" class="type int">int</a></span>)
   </dt>
   <dd>
    <span class="simpara">
     Sinônimo de <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.sql-use-odbc">Pdo\Odbc::SQL_USE_ODBC</a></code></strong>.
    </span>
   </dd>
  
  
   <dt id="pdo.constants.odbc-attr-assume-utf8">
    <strong><code><a href="ref.pdo-odbc.php#pdo.constants.odbc-attr-assume-utf8">PDO::ODBC_ATTR_ASSUME_UTF8</a></code></strong>
     (<span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>)
   </dt>
   <dd>
    <span class="simpara">
     Sinônimo de <strong><code><a href="class.pdo-odbc.php#pdo-odbc.constants.attr-assume-utf8">Pdo\Odbc::ATTR_ASSUME_UTF8</a></code></strong>.
    </span>
   </dd>
  
 </dl>
</div>



  
  

<div class="section" id="pdo-odbc.configuration">
 <h2 class="title">Configurações em Execução</h2>
 <p class="simpara">
O comportamento destas funções é afetado pelas configurações do <var class="filename">php.ini</var>.
</p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>Opções de Configuração do PDO_ODBC</strong></caption>
   
    <thead>
     <tr>
      <th>Nome</th>
      <th>Padrão</th>
      <th>Modificável</th>
      <th>Registro de Alterações</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="ref.pdo-odbc.php#ini.pdo-odbc.connection-pooling" class="link">pdo_odbc.connection_pooling</a></td>
      <td>&quot;strict&quot;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><a href="ref.pdo-odbc.php#ini.pdo-odbc.db2-instance-name" class="link">pdo_odbc.db2_instance_name</a></td>
      <td>NULL</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td>Este recurso descontinuado <em>será</em>
certamente <em>removido</em> no futuro.</td>
     </tr>

    </tbody>
   
  </table>

  Para mais detalhes e definições dos modos
INI_*, consulte os <a href="configuration.changes.modes.php" class="xref">Onde uma configura&ccedil;&atilde;o deve ser definida</a>.
 </p>

 <p class="para">Aqui está uma breve explicação das
diretivas de configuração.</p>

 <p class="para">
  <dl>
    
    <dt id="ini.pdo-odbc.connection-pooling">
     <code class="parameter">pdo_odbc.connection_pooling</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      Informa se as conexões ODBC devem ser agrupadas. Pode ser <code class="literal">&quot;strict&quot;</code>,
      <code class="literal">&quot;relaxed&quot;</code> ou <code class="literal">&quot;off&quot;</code> (igual a
      <code class="literal">&quot;&quot;</code>). O parâmetro descreve quão rigoroso o gerenciador
      de conexões deve ser ao comparar parâmetros de conexão com conexões agrupadas
      existentes. <strong class="userinput"><code>strict</code></strong> é o padrão recomendado e
      resultará no uso de conexões em cache somente quando todos os parâmetros
      de conexão tiverem correspondência exata. <strong class="userinput"><code>relaxed</code></strong> resultará no
      uso de conexões em cache quando parâmetros de conexão semelhantes forem
      usados. Isso pode resultar no aumento do uso do cache, correndo o risco
      de sangrar informações de conexão entre (por exemplo) servidores virtuais.
     </p>
     <p class="para">
      Esta configuração só pode ser alterada no arquivo <var class="filename">php.ini</var>
      e afeta todo o processo; quaisquer outros módulos carregados no
      processo que usem as mesmas bibliotecas ODBC também serão afetados, incluindo
      a <a href="ref.uodbc.php" class="link">extensão ODBC unificada</a>.
     </p>
     <div class="warning"><strong class="warning">Aviso</strong>
      <p class="para">
       A correspondência <strong class="userinput"><code>relaxed</code></strong> não deve ser usada em um servidor
       compartilhado, por motivos de segurança.
      </p>
     </div>
     <div class="tip"><strong class="tip">Dica</strong>
      <p class="para">
       Esta configuração deve ser mantida na configuração padrão <strong class="userinput"><code>strict</code></strong>
       a menos que exista um bom motivo para alterá-la.
      </p>
     </div>
    </dd>
   
   
    <dt id="ini.pdo-odbc.db2-instance-name">
     <code class="parameter">pdo_odbc.db2_instance_name</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      Se você o PDO_ODBC for compilado usando o tipo <code class="literal">db2</code>,
      esta configuração definirá o valor da variável de ambiente DB2INSTANCE nos
      sistemas operacionais Linux e UNIX para o nome especificado da instância
      do DB2. Isso permite que o PDO_ODBC resolva o local das bibliotecas DB2
      e estabeleça conexões catalogadas com bancos de dados DB2.
     </p>
     <p class="para">
      Esta configuração só pode ser alterada no arquivo <var class="filename">php.ini</var>
      e afeta todo o processo; quaisquer outros módulos carregados no
      processo que usem as mesmas bibliotecas ODBC também serão afetados, incluindo
      a <a href="ref.uodbc.php" class="link">extensão ODBC unificada</a>.
     </p>
     <p class="para">
      Esta configuração não tem efeito no Windows.
     </p>
    </dd>
   

  </dl>
 </p>
</div>



 </div>

 

<h2>Índice</h2><ul class="chunklist chunklist_reference"><li><a href="ref.pdo-odbc.connection.php">PDO_ODBC DSN</a> — Conectando-se a bancos de dados ODBC ou DB2</li></ul>
</div>
<?php manual_footer($setup); ?>