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
TRUE
devolverá las columnasNULL
como la cadena "NULL
", cuando es fijada aFALSE
devuelven la cadena vacía. Esto permite discriminar entre columnasNULL
y 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_persistent
boolean
Permitir o no conexiones persistentes a Informix.
ifx.max_persistent
integer
El número máximo de conexiones persistentes a Informix por proceso.
ifx.max_links
integer
El número máximo de conexiones a Informix por proceso, incluyendo conexiones persistentes.
ifx.default_host
string
El host por defecto al cual conectarse cuando no se ha especificado un host en ifx_connect() o ifx_pconnect(). No es efectiva en safe mode.
ifx.default_user
string
El user id por defecto a utilizarse cuando no se especifica ninguno en ifx_connect() o ifx_pconnect(). No es efectiva en safe mode.
ifx.default_password
string
La contraseña por omisión a utilizarse cuando no se ha especificado ninguna en ifx_connect() o ifx_pconnect(). No es efectiva en safe mode.
ifx.blobinfile
boolean
Fíjese a TRUE
si se desea devolver las columnas blob
en un fichero, FALSE
si se les desea en memoria. Se puede
invalidar la opción en tiempo de ejecución
con ifx_blobinfile_mode().
ifx.textasvarchar
boolean
Fíjese a TRUE
si se desea devolver las columnas TEXT
como cadenas normales en enunciados select,
FALSE
si se desea utilizar parámetros blob id. Se puede
invalidar la opción en tiempo de ejecución
con ifx_textasvarchar().
ifx.byteasvarchar
boolean
Fíjese a TRUE
si se desea devolver las columnas BYTE
como cadenas normales en peticiones select,
FALSE
si se desea utilizar parámetros blob id. Se puede
invalidar la opción en tiempo de ejecución con
ifx_textasvarchar().
ifx.charasvarchar
boolean
Fíjese a TRUE
si se desea eliminar los espacios sobrantes
de las columnas CHAR al traerlas.
ifx.nullformat
boolean
Fíjese a TRUE
si se desea devolver columnas NULL
como la cadena literal "NULL
", FALSE
si se desea
que sean devueltas como la cadena vacía "". Se puede
invalidar esta opción en tiempo de ejecución con
ifx_nullformat().