Configuración en tiempo de ejecución
El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nota:
Asegúrese de que las variables de entorno INFORMIXDIR e INFORMIXSERVER estén disponibles para el driver ifx de PHP, y que el directorio bin de INFORMIX esté en el PATH. Revise esto ejecutando un script que contenga una llamada a phpinfo() antes de comenzar a probar. La salida de phpinfo() debería listar estas variables de entorno. Esto es verdadero para ambos CGI php y Apache mod_php. Es posible que se deban fijar estas variables de entorno en el script de arranque de Apache.
Las librerías compartidas de Informix también deben de estar disponibles para el cargador (revise LD_LIBRARY_PATH o ld.so.conf/ldconfig).
Nota: Algunas notas en el uso de BLOBs (columnas TEXT y BYTE)
Los BLOBs son referenciados por identificadores BLOB. Peticiones Select regresan un "blob id" por cada columna BYTE y TEXT. Se puede llegar al contenido con "string_var = ifx_get_blob($blob_id);" si se elige colocar los BLOBs en memoria (con: "ifx_blobinfile(0);"). Si se prefiere recibir el contenido de las columnas BLOB en un fichero, utilice "ifx_blobinfile(1);", y "ifx_get_blob($blob_id);" devolverá el nombre del fichero. Utilice E/S de ficheros para acceder al contenido del blob.
Para peticiones de insert/update se deben crear estos "blob id" por cuenta propia con "ifx_create_blob();". Entonces se insertan los blob id dentro de una matriz, y se remplazan las columnas blob con un signo de interrogación (?) en la cadena de petición. Para updates/inserts, se tiene la responsabilidad de fijar el contenido del blob con ifx_update_blob().
El comportamiento de las columnas BLOB puede ser alterado por variables de configuración que también pueden ser fijadas en tiempo de ejecución:
variable de configuración: ifx.textasvarchar
variable de configuración: ifx.byteasvarchar
funciones de tiempo de ejecución:
ifx_textasvarchar(0): utilice blob ids para peticiones select con columnas TEXT
ifx_byteasvarchar(0): utilice blob ids para peticiones select con columnas BYTE
ifx_textasvarchar(1): devolver columnas TEXT como si fueran columnas VARCHAR, de tal manera que no sea necesario utilizar blob ids para peticiones select.
ifx_byteasvarchar(1): devolver columnas BYTE como si fueran columnas VARCHAR, de tal manera que no sea necesario utilizar blob ids para peticiones select.
variable de configuración: ifx.blobinfile
función de tiempo de ejecución:
ifx_blobinfile_mode(0): devolver columnas BYTE en memoria, el blob id permite acceder al contenido.
ifx_blobinfile_mode(1): devolver columnas BYTE en un fichero, el blob id permite obtener el nombre del fichero.
Si se fija ifx_text/byteasvarchar a 1, se pueden utilizar columnas TEXT y BYTE en peticiones select tal como en campos VARCHAR normales (aunque largos). Dado que todas las cadenas en PHP son "contadas", esto sigue siendo "seguro al tratar con datos binarios". Es su responsabilidad manejar esto correctamente. Los datos devueltos pueden no contener nada, Usted es responsable del contenido.
Si se fija ifx_blobinfile a 1, utilice el nombre de fichero devuelto por ifx_get_blob(..) para acceder al contenido del blob. Note que en este caso USTED ES EL RESPONSABLE DE BORRAR LOS FICHEROS TEMPORALES CREADOS POR INFORMIX al obtener el registro. Cada nuevo registro obtenido creará nuevos ficheros temporales para cada columna BYTE.
La ubicación de los ficheros temporales puede ser influenciada por la variable de entorno "blobdir", por defecto es "." (el directorio actual). Algo así como: "putenv(blobdir=tmpblob"); facilitará la limpieza de ficheros temporales dejados atrás accidentalmente (todos sus nombres inician con "blb").
Nota: Recortado (trimming) automático de datos tipo "char" (SQLCHAR y SQLNCHAR)
Esto puede ser fijado con la variable de configuración
ifx.charasvarchar: si se fija en 1 los espacios finales serán automáticamente eliminados, para ahorrar un poco de "rebanado".
Nota: Valores
NULL
La variable de configuración ifx.nullformat (y la función de tiempo de ejecución ifx_nullformat()) cuando es fijada a
TRUEdevolverá las columnasNULLcomo la cadena "NULL", cuando es fijada aFALSEdevuelven la cadena vacía. Esto permite discriminar entre columnasNULLy columnas vacías.
| Nombre | Por defecto | Cambiable | Historial de cambios |
|---|---|---|---|
| ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.max_links | "-1" | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.default_host | NULL | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.default_user | NULL | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.default_password | NULL | PHP_INI_SYSTEM | Eliminada en PHP 5.2.1. |
| ifx.blobinfile | "1" | PHP_INI_ALL | Eliminada en PHP 5.2.1. |
| ifx.textasvarchar | "0" | PHP_INI_ALL | Eliminada en PHP 5.2.1. |
| ifx.byteasvarchar | "0" | PHP_INI_ALL | Eliminada en PHP 5.2.1. |
| ifx.charasvarchar | "0" | PHP_INI_ALL | Eliminada en PHP 5.2.1. |
| ifx.nullformat | "0" | PHP_INI_ALL | Eliminada en PHP 5.2.1. |
He aquí una breve explicación de las directivas de configuración.
-
ifx.allow_persistentboolean -
Permitir o no conexiones persistentes a Informix.
-
ifx.max_persistentinteger -
El número máximo de conexiones persistentes a Informix por proceso.
-
ifx.max_linksinteger -
El número máximo de conexiones a Informix por proceso, incluyendo conexiones persistentes.
-
ifx.default_hoststring -
El host por defecto al cual conectarse cuando no se ha especificado un host en ifx_connect() o ifx_pconnect(). No es efectiva en modo seguro.
-
ifx.default_userstring -
El user id por defecto a utilizarse cuando no se especifica ninguno en ifx_connect() o ifx_pconnect(). No es efectiva en modo seguro.
-
ifx.default_passwordstring -
La contraseña por omisión a utilizarse cuando no se ha especificado ninguna en ifx_connect() o ifx_pconnect(). No es efectiva en modo seguro.
-
ifx.blobinfileboolean -
Fíjese a
TRUEsi se desea devolver las columnas blob en un fichero,FALSEsi se les desea en memoria. Se puede invalidar la opción en tiempo de ejecución con ifx_blobinfile_mode(). -
ifx.textasvarcharboolean -
Fíjese a
TRUEsi se desea devolver las columnas TEXT como cadenas normales en enunciados select,FALSEsi se desea utilizar parámetros blob id. Se puede invalidar la opción en tiempo de ejecución con ifx_textasvarchar(). -
ifx.byteasvarcharboolean -
Fíjese a
TRUEsi se desea devolver las columnas BYTE como cadenas normales en peticiones select,FALSEsi se desea utilizar parámetros blob id. Se puede invalidar la opción en tiempo de ejecución con ifx_textasvarchar(). -
ifx.charasvarcharboolean -
Fíjese a
TRUEsi se desea eliminar los espacios sobrantes de las columnas CHAR al traerlas. -
ifx.nullformatboolean -
Fíjese a
TRUEsi se desea devolver columnasNULLcomo la cadena literal "NULL",FALSEsi se desea que sean devueltas como la cadena vacía "". Se puede invalidar esta opción en tiempo de ejecución con ifx_nullformat().