CXXVII. ODBC Unificado

Introdução

Em adição ao suporte ODBC normal, as funções de ODBC unificado no PHP permitem a você acessar vários banco de dados que pegaram emprestada a semantica da API ODBC para implementar a sua própria API. Ao invés de manter múltiplos drivers de banco de dados que são praticamente iguais, estes drivers foram unificados em um único conjunto de funções ODBC.

Os seguintes banco de dados são suportados pelas funções de ODBC unificado: Adabas D, IBM DB2, iODBC, Solid, e Sybase SQL Anywhere.

Nota: Não há ODBC envolvido ao conectar aos banco de dados acima. As funções que você usa para conversar nativamente com eles apenas usam o mesmo nome e sintaxe das funções ODBC. A excessão a isto é iODBC. Fazendo o PHP com suporte a iODBC permite a você utilizar qualquer driver ODBC-compliant com as suas aplicações PHP. iODBC é mantido por OpenLink Software. Maiores informações sobre iODBC, assim como um HOWTO, estão disponíveis em www.iodbc.org.

Dependências

Para acessar qualquer um dos banco de dados suportados você precisa ter as bibliotecas necessárias instaladas.

Instalação

--with-adabas[=DIR]

Inclui suporte a Adabas D. DIR é o diretório base da instalação do Adabas, o padrão é /usr/local.

--with-sapdb[=DIR]

Inclui suporte a SAP DB. DIR é o diretório base SAP DB, o padrão é /usr/local.

--with-solid[=DIR]

Inclui o suporte Solid. DIR é o diretório base da instalação Solid, o padrão é /usr/local/solid.

--with-ibm-db2[=DIR]

Inclui suporte ao IBM DB2. DIR é o diretório base da instalaçação do DB2, o padrão é /home/db2inst1/sqllib.

--with-empress[=DIR]

Inclui suporte a Empress. DIR é o diretório base da instalação do Empress, o padrão é $EMPRESSPATH. A partir do PHP4, esta opção suporta apenas o Empress Versão 8.60 e posterior.

--with-empress-bcs[=DIR]

Inclui suporte a Empress Local Access. DIR é o diretório base da instalação do Empress, o padrão é $EMPRESSPATH. A partir do PHP4, esta opção suporta apenas o Empress Version 8.60 e posterior.

--with-birdstep[=DIR]

Inclui suporte Birdstep. DIR é o diretório base da instalação do Birdstep, o padrão é /usr/local/birdstep.

--with-custom-odbc[=DIR]

Inclui um suporte ODBC definido pelo usuário. DIR é o diretório base da instalação do ODBC, o padrão é /usr/local. Tenha certeza de definir CUSTOM_ODBC_LIBS e ter algum odbc.h nos seus diretórios de inclusão. Ex., você deve definir o seguinte para Sybase SQL Anywhere 5.5.00 no QNX, antes de executar o script configure: CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Inclui o suporte a iODBC. DIR é o diretório base da instalação do iODBC, o pardrão é /usr/local.

--with-esoob[=DIR]

Inclui suporte a Easysoft OOB. DIR é o diretório base da instalação OOB, o padrão é /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Inclui suporte a unixODBC. DIR é o diretório base da instalação unixODBC, o padrão é /usr/local.

--with-openlink[=DIR]

Inclui suporte a OpenLink ODBC. DIR é o diretório base da instalação do OpenLink, o padrão é /usr/local. Este é o mesmo que iODBC.

--with-dbmaker[=DIR]

Inclui suporte a DBMaker. DIR é o diretório base da instalação do DBMaker, o padrão é para onde a versão mais recente do DBMaker esteja instalada (algo como /home/dbmaker/3.6).

Para desabilitar o suporte a unified ODBC no PHP 3 adicione --disable-unified-odbc na sua linha de configuração. Somente aplicável se iODBC, Adabas, Solid, Velocis ou uma interface ODBC definida pelo usuário esteja definida.

A versão para Windows do PHP tem suporte embutido para esta extensão. Você não precisa carregar nenhuma extensão adicional para utilizar essas funções.

Configurações em execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Tabela 1. Opções de Configuração do ODBC Unificado

NomePadrãoModificável
odbc.default_db *NULLPHP_INI_ALL
odbc.default_user *NULLPHP_INI_ALL
odbc.default_pw *NULLPHP_INI_ALL
odbc.allow_persistent"1"PHP_INI_SYSTEM
odbc.check_persistent"1"PHP_INI_SYSTEM
odbc.max_persistent"-1"PHP_INI_SYSTEM
odbc.max_links"-1"PHP_INI_SYSTEM
odbc.defaultlrl"4096"PHP_INI_ALL
odbc.defaultbinmode"1"PHP_INI_ALL

Nota: Entradas marcadas com * ainda não estão implementadas.

Para maiores detalhes e definições das constantes PHP_INI_* veja ini_set().

Breve descrição das diretivas de configuração.

odbc.default_db string

Fonte de dados ODBC se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.default_user string

Nome de usuário se nenhum for especificado em odbc_connect() ou odbc_pconnect().

odbc.default_pw string

Senha para usar se nenhuma for especificada em odbc_connect() ou odbc_pconnect().

odbc.allow_persistent boolean

Quando permitir conexões ODBC persistentes.

odbc.check_persistent boolean

Conferir que a conexão ainda seja válida antes de reutilizar.

odbc.max_persistent integer

O número máximo de conexões ODBC persistentes por processo.

odbc.max_links integer

O número máximo de conexões ODBC por processo, incluindo as conexões persistentes.

odbc.defaultlrl integer

Manipulação de campos LONG. Especifica o número de bytes retornados para as variáveis.

odbc.defaultbinmode integer

Manipulação de dados binários.

Tipos Resource

Esta extensão não possui nenhum tipo resource.

Constantes pré-definidas

As contantes abaixo são definidas por esta extensão e somente estarão disponíveis quando a extensão foi compilada com o PHP ou carregada dinamicamente durante a execução.

ODBC_TYPE (integer)

ODBC_BINMODE_PASSTHRU (integer)

ODBC_BINMODE_RETURN (integer)

ODBC_BINMODE_CONVERT (integer)

SQL_ODBC_CURSORS (integer)

SQL_CUR_USE_DRIVER (integer)

SQL_CUR_USE_IF_NEEDED (integer)

SQL_CUR_USE_ODBC (integer)

SQL_CONCURRENCY (integer)

SQL_CONCUR_READ_ONLY (integer)

SQL_CONCUR_LOCK (integer)

SQL_CONCUR_ROWVER (integer)

SQL_CONCUR_VALUES (integer)

SQL_CURSOR_TYPE (integer)

SQL_CURSOR_FORWARD_ONLY (integer)

SQL_CURSOR_KEYSET_DRIVEN (integer)

SQL_CURSOR_DYNAMIC (integer)

SQL_CURSOR_STATIC (integer)

SQL_KEYSET_SIZE (integer)

SQL_CHAR (integer)

SQL_VARCHAR (integer)

SQL_LONGVARCHAR (integer)

SQL_DECIMAL (integer)

SQL_NUMERIC (integer)

SQL_BIT (integer)

SQL_TINYINT (integer)

SQL_SMALLINT (integer)

SQL_INTEGER (integer)

SQL_BIGINT (integer)

SQL_REAL (integer)

SQL_FLOAT (integer)

SQL_DOUBLE (integer)

SQL_BINARY (integer)

SQL_VARBINARY (integer)

SQL_LONGVARBINARY (integer)

SQL_DATE (integer)

SQL_TIME (integer)

SQL_TIMESTAMP (integer)

SQL_TYPE_DATE (integer)

SQL_TYPE_TIME (integer)

SQL_TYPE_TIMESTAMP (integer)

SQL_BEST_ROWID (integer)

SQL_ROWVER (integer)

SQL_SCOPE_CURROW (integer)

SQL_SCOPE_TRANSACTION (integer)

SQL_SCOPE_SESSION (integer)

SQL_NO_NULLS (integer)

SQL_NULLABLE (integer)

SQL_INDEX_UNIQUE (integer)

SQL_INDEX_ALL (integer)

SQL_ENSURE (integer)

SQL_QUICK (integer)

Índice
odbc_autocommit -- Modifica o funcionamento do autocommit
odbc_binmode -- Manipulação de uma coluna com dados binários
odbc_close_all -- Fecha todas as conexões ODBC
odbc_close -- Fecha uma conexão ODBC
odbc_columnprivileges --  Retorna um identificador de resultado que pode ser usado para obter uma lista de colunas e os privilégios associados
odbc_columns --  Lista os nomes das colunas nas tabelas especificadas. Retorna um identificador de resultado contendo a informação.
odbc_commit -- Grava uma transação ODBC
odbc_connect -- Conecta com uma fonte de dados
odbc_cursor -- Obtém cursorname
odbc_data_source -- Retorna informação sobre a conexão atual
odbc_do -- Sinonimo para odbc_exec()
odbc_error -- Obtém o último código de erro
odbc_errormsg -- Obtém a última mensagem de erro
odbc_exec -- Prepara e executa um comando SQL
odbc_execute -- Executa um comando preparado
odbc_fetch_array --  Obtém uma linha do conjunto de resultados como uma matriz associativa
odbc_fetch_into -- Obtém uma linha do conjunto de resultados como uma matriz
odbc_fetch_object --  Obtém um conjunto de resultados como um objeto
odbc_fetch_row -- Obtém uma linha
odbc_field_len -- Obtém o tamanho (precisão) de um campo
odbc_field_name -- Obtém o nome da coluna
odbc_field_num -- Retorna o número da coluna
odbc_field_precision -- Sinonimo para odbc_field_len()
odbc_field_scale -- Obtém a precisão de um campo
odbc_field_type -- Tipo de dados de um campo
odbc_foreignkeys --  Retorna uma lista de chaves estrangeiras na tabela especificada ou uma lista de chaves estrangeiras em outras tabelas que se referem a chave primária na tabela especificada
odbc_free_result -- Libera os recursos associados a um resultado
odbc_gettypeinfo --  Retorna um identificador de resultados contendo informações sobre os tipos de dados suportados pela fonte de dados.
odbc_longreadlen -- Manipulação de colunas LONG
odbc_next_result --  Confere se resultados múltiplos estão disponíveis
odbc_num_fields -- Número de colunas em um resultado
odbc_num_rows -- Número de linhas em um resultado
odbc_pconnect -- Abre uma conexão persistente com o servidor de banco de dados
odbc_prepare -- Prepara um comando para execução
odbc_primarykeys --  Retorna um identificador de resultados que pode ser usado para obter os nomes de colunas que inclui a chave primária para a tabela
odbc_procedurecolumns --  Obtém informações sobre parâmetros para procedures
odbc_procedures --  Obtém a lista de procedures guadadas na fonte de dados especificada. Retorna um identificador de resultados contendo a informação.
odbc_result_all -- Mostra o resultado como uma tabela HTML
odbc_result -- Obtém dados do resultado
odbc_rollback -- Desfaz uma transação
odbc_setoption --  Ajusta definições ODBC. Retorna FALSE se acontecer um erro, se não TRUE.
odbc_specialcolumns --  Retorna um conjunto de colunas que identificam de modo único uma linha na tabela ou as colunas que são automaticamente atualizadas quando qualquer valor na linha é atualizado por uma transação.
odbc_statistics -- Obtém estatisticas sobre uma tabela
odbc_tableprivileges --  Lista tabelas e os privilégios associados a cada tabela
odbc_tables --  Obtém uma lista dos nomes das tabelas guardadas em um fonte de dados especifica. Retorna um identficador de resultado contendo a informação.