odbc_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_connectConecta a uma fonte de dados

Descrição

odbc_connect(
    string $dsn,
    ?string $user = null,
    ?string $password = null,
    int $cursor_option = SQL_CUR_USE_DRIVER
): Odbc\Connection|false

O ID de conexão retornado por essas funções é necessário para outras funções ODBC. Podem existir várias conexões abertas ao mesmo tempo, desde que usem bancos de dados diferentes ou credenciais diferentes.

Com alguns drivers ODBC, a execução de um procedimento armazenado complexo pode falhar com um erro semelhante a: "Não é possível abrir um cursor em um procedimento armazenado que contenha algo diferente de uma única instrução SELECT". Usar SQL_CUR_USE_ODBC pode evitar esse erro. Além disso, alguns drivers não suportam o parâmetro row_number opcional em odbc_fetch_row(). SQL_CUR_USE_ODBC também pode ajudar nesse caso.

Parâmetros

dsn

O nome da fonte do banco de dados para a conexão. Como alternativa, uma string de conexão sem DSN pode ser usada.

user

O nome de usuário. Este parâmetro é ignorado se dsn contiver uid. Para conectar sem especificar o parâmetro user, use null.

password

A senha. Este parâmetro é ignorado se dsn contiver pwd. Para conectar sem especificar o parâmetro password, use null.

cursor_option

Este parâmetro define o tipo de cursor a ser usado para esta conexão. Este parâmetro normalmente não é necessário, mas pode ser útil para solucionar problemas com alguns drivers ODBC.

As seguintes constantes são definidas para o tipo de cursor:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valor Retornado

Retorna uma conexão ODBC, ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.4.0 odbc agora espera uma instância de Odbc\Connection; anteriormente, esperava um resource.
8.4.0 Esta função agora retorna uma instância de Odbc\Connection; anteriormente, retornava um resource.
8.4.0 user e password agora podem ser nulos e também são opcionais e têm o valor padrão null.
8.4.0 Anteriormente, usar uma string vazia para password não incluiria pwd na string de conexão gerada para dsn. Agora é gerada para uncluir um pwd que tem uma string vazia como seu valor. Para restaurar o comportamento anterior, password agora pode ser definido para null.
8.4.0 Anteriormente, se dsn contivesse uid ou pwd, os parâmetros user e password seriam ignorados. Agora, user somente é ignorado se dsn contiver uid, e password somente é ignorado se dsn contiver pwd.

Exemplos

Exemplo #1 Conexões sem DSN

<?php
// Microsoft SQL Server usando o Driver ODBC SQL Native Client 10.0 - permite conexão ao SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Veja Também

  • Para conexões persistentes: odbc_pconnect() - Abre uma conexão persistente com o banco de dados