Funciones del controlador PDO ODBC y DB2 (PDO_ODBC)

Introducción

PDO_ODBC es un controlador que implementa la interfaz de PHP Data Objects (PDO) para permitir el acceso de PHP a las bases de datos mediante los controladores de ODBC o mediante la biblioteca de interfaz IBM DB2 Call Level (DB2 CLI). PDO_ODBC actualmente soporta tres "sabores" diferentes de los controladores de bases de datos:

ibm-db2

Permite el acceso a IBM DB2 Universal Database, Cloudscape y Apache Derby Server utilizando el cliente gratuito DB2 express-C.

unixODBC

Permite el acceso a los servidores de bases de datos mediante el controlador de gestión unixODBC y las bases de datos poseídas por los controladores ODBC.

generic

Ofrece una opción de compilación para los controladores de gestión ODBC que no son explícitamente soportados por PDO_ODBC.

En Windows, php_pdo_odbc.dll debe ser activado como extensión en php.ini. Está vinculado con el Windows ODBC Driver Manager, por lo que PHP puede conectarse a cualquier base de datos catalogada como un System DSN.

Instalación

PDO_ODBC en sistemas UNIX
  1. PDO_ODBC está incluido en las fuentes de PHP. Puede compilarse la extensión PDO_ODBC ya sea de forma estática o como módulo compartido utilizando los siguientes comandos configure.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    
    Para construir PDO_ODBC con el sabor ibm-db2, deben haberse instalado previamente los encabezados de desarrollo de la aplicación DB2 en la misma máquina donde se compila PDO_ODBC. Los encabezados de desarrollo de la aplicación DB2 son una opción de instalación en los servidores DB2 y también están disponibles como DB2 Application Development Client gratuitamente disponibles para descarga desde el » sitio. IBM developerWorks.

    Si no se especifica una ubicación para las bibliotecas y los encabezados de DB2 en el comando configure, PDO_ODBC tomará por omisión /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    
    Si no se especifica una ubicación para las bibliotecas y los encabezados de unixODBC en el comando configure, PDO_ODBC tomará por omisión /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
    

Constantes predefinidas

Estas constantes están definidas por este controlador, y estarán disponibles sólo cuando la extensión haya sido compilada con PHP, o bien sea cargada dinámicamente en ejecución. Además, estas constantes específicas del controlador deberían ser utilizadas sólo si está usando este controlador. Usar atributos específicos del controlador con otro controlador podría resultar en un comportamiento inesperado. PDO::getAttribute() puede ser empleado para obtener el atributo PDO::ATTR_DRIVER_NAME para verificar el controlador, si el código puede ejecutarse con múltiples controladores.

PDO_ODBC_TYPE (string)

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)
Alias de Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY.
PDO::ODBC_SQL_USE_IF_NEEDED (int)
Alias de Pdo\Odbc::SQL_USE_IF_NEEDED.
PDO::ODBC_SQL_USE_DRIVER (int)
Alias de Pdo\Odbc::SQL_USE_DRIVER.
PDO::ODBC_SQL_USE_ODBC (int)
Alias de Pdo\Odbc::SQL_USE_ODBC.
PDO::ODBC_ATTR_ASSUME_UTF8 (bool)
Alias de Pdo\Odbc::ATTR_ASSUME_UTF8.

Configuración en tiempo de ejecución

El comportamiento de estas funciones se ve afectado por la configuración de php.ini.

Opciones de configuración de PDO_ODBC
Nombre Por defecto Cambiable Historial de cambios
pdo_odbc.connection_pooling "strict" INI_ALL  
pdo_odbc.db2_instance_name NULL INI_SYSTEM Esta característica obsoleta será eliminada con certeza en el futuro.
Para más detalles y definiciones de los modos de INI_*, vea Dónde una directiva de configuración puede ser modificada.

He aquí una breve explicación de las directivas de configuración.

pdo_odbc.connection_pooling string

Si agrupar conexiones de ODBC. Se puede usar "strict", "relaxed" o "off" (que es igual a ""). El parámetro describe cómo de estricta debería ser el administrador de conexiones cuando coincidan los parámetros de conexión con conexiones existentes en la agrupación. strict es el valor predetermiando recomendado, y dará como resultado en el uso de conexiones almacenadas en caché solamente cuando todos los parámetros de conexión coincidan exactamente. relaxed dará como resultado el uso de conexiones almacenadas en caché cuando se utilicen parámetros de conexión similares. Esto puede resultar en el aumento del uso de la caché, con el riesgo de perder información de conexión entre (por ejemplo) hosts virtuales.

Este ajuste solamente se puede cambiar desde el fichero php.ini, y afecta al proceso completo; cualquier otro módulo dentro del proceso que utilice las mismas bibliotecas de ODBC también se verá afectado, incluyendo la Extensión ODBC Unificada.

Advertencia

relaxed no debería usarse en servidores compartidos, por razones de seguridad.

Sugerencia

Deje este ajuste a la configuración strict predeterminada a menos que tenga una buena razón para cambiarlo.

pdo_odbc.db2_instance_name string

Si se compila PDO_ODBC usando el sabor db2, este ajuste establece el valor de la variable de entorno DB2INSTANCE en sistemas operativos Linux y UNIX al nombre especificado de la instancia de DB2. También habilita PDO_ODBC para resolver la ubicación de las bibliotecas de DB2 y realizar conexiones catalogadas a bases de datos DB2.

Este ajuste solamente se puede cambiar desde el fichero php.ini, y afecta al proceso completo; cualquier otro módulo dentro del proceso que utilice las mismas bibliotescas de ODBC también se verá afectado, incluyendo la Extensión ODBC Unificada.

Este ajuste no tiene efecto en Windows.

Tabla de contenidos