odbc_connect

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

odbc_connectConexión a una fuente

Descripción

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

El identificador de conexión devuelto por esta función es necesario para todas las demás funciones ODBC. Puede tener múltiples conexiones al mismo tiempo.

Con algunos controladores ODBC, la ejecución de procedimientos almacenados complejos puede producir el siguiente error: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it", lo que significa: "No se puede abrir un cursor en un procedimiento almacenado que tenga algo distinto de una única sentencia SELECT". Utilizar la opción SQL_CUR_USE_ODBC permite evitar este error. Además, algunos controladores no soportan el parámetro opcional de número de línea en odbc_fetch_row(). SQL_CUR_USE_ODBC puede también permitir resolver estos problemas.

Parámetros

dsn

El nombre de la fuente de datos (DSN), para la conexión.

user

El nombre de usuario. Este parámetro se ignora si dsn contiene uid. Para una conexión sin especificar un user, utilizar null.

password

La contraseña. Este parámetro se ignora si dsn contiene pwd. Para una conexión sin especificar un password, utilizar null.

cursor_option

Establece el tipo de cursor de resultado utilizado para esta conexión. Este parámetro no es generalmente necesario, pero puede ser útil para evitar ciertos problemas ODBC.

Las constantes siguientes están definidas como tipos de cursor:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Valores devueltos

Devuelve una conexión ODBC, o false en caso de error.

Historial de cambios

Versión Descripción
8.4.0 odbc expects an Odbc\Connection instance now; previously, a resource was expected.
8.4.0 This function returns a Odbc\Connection instance now; previously, a resource was returned.
8.4.0 user and password are now nullable, they are now also optional and default to null.
8.4.0 Previously, using an empty string for password would not include pwd in the generated connection string for dsn. It is now generated to include a pwd which has an empty string as its value. To restore the previous behaviour password can now be set to null.
8.4.0 Previously, if dsn contained uid or pwd both user and password parameters were ignored. Now user is only ignored if dsn contains uid, and password is only ignored if dsn contains pwd.

Ejemplos

Ejemplo #1 Conexión sin DSN

<?php
// Microsoft SQL Server utiliza el controlador SQL Native Client 10.0 ODBC Driver:
// permite las conexiones a SQL 7, 2000, 2005 y 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" , '', '');
?>

Ver también

  • Para conexiones persistentes: odbc_pconnect() - Abre una conexión persistente a un origen de datos