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:
Permite el acceso a IBM DB2 Universal Database
,
Cloudscape y Apache Derby Server utilizando el cliente gratuito DB2 express-C.
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.
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.
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.
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
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.
./configure --with-pdo-odbc=unixODBC,/usr/local
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
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)
Pdo\Odbc::ATTR_USE_CURSOR_LIBRARY
.
PDO::ODBC_SQL_USE_IF_NEEDED
(int)
Pdo\Odbc::SQL_USE_IF_NEEDED
.
PDO::ODBC_SQL_USE_DRIVER
(int)
Pdo\Odbc::SQL_USE_DRIVER
.
PDO::ODBC_SQL_USE_ODBC
(int)
Pdo\Odbc::SQL_USE_ODBC
.
PDO::ODBC_ATTR_ASSUME_UTF8
(bool)
Pdo\Odbc::ATTR_ASSUME_UTF8
.
El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
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. |
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.
relaxed
no debería usarse en servidores
compartidos, por razones de seguridad.
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.