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 si ocurre un error.

Historial de cambios

Versión Descripción
8.4.0 odbc ahora espera una instancia de Odbc\Connection; anteriormente, se esperaba un resource.
8.4.0 Esta función ahora devuelve una instancia de Odbc\Connection; anteriormente, se devolvía un resource.
8.4.0 user y password ahora pueden ser nulos, también son opcionales y valen por omisión null.
8.4.0 Anteriormente, el uso de una cadena vacía para password no incluía pwd en la cadena de conexión generada para dsn. Ahora, pwd se incluye en la cadena de conexión, con un valor de cadena vacía. Para restaurar el comportamiento anterior, password puede ser definido como null.
8.4.0 Anteriormente, si dsn contenía uid o pwd, entonces los parámetros user y password eran ignorados. Ahora, user solo es ignorado si dsn contiene uid, y password solo es ignorado si dsn contiene 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