ifx_query

(PHP 4, PHP 5 < 5.2.1)

ifx_queryEnviar una consulta Informix

Descripción

ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] ) : resource

Envía la consulta query a la base de datos por medio de una conexión activa asociada con link_identifier.

Para consultas "SELECT" devuelve un cursor. Para consultas "INSERT", "UPDATE" y "DELETE", se ejecutan inmediatamente.

Para cualquier tipo de consulta el total (estimado o real) de filas afectadas es guardado y devuelto por ifx_affected_rows().

Si la columna es de tipo TEXT (o BYTE) y la columna lo permite, se puede utilizar ifx_textasvarchar(1) y ifx_byteasvarchar(1). Ésto permite tratar columnas de tipo TEXT (o BYTE) como si fueran columnas VARCHAR ordinarias (pero extensas) en consultas "SELECT", y no preocuparse por identificadores BLOB.

Con ifx_textasvarchar(0) o ifx_byteasvarchar(0) (por defecto), las consultas "SELECT" devuelven columnas BLOB como identificadores BLOB (enteros). Puede obtener el valor de estas columnas como si fuera una cadena o archivo usando las funciones BLOB (ver más abajo).

Parámetros

query

Consulta a enviar.

link_identifier

Identificador de la conexión.

cursor_def

Este parámetro opcional permite tratarlo como un cursor scroll y/o hold. Es una máscara y puede ser IFX_SCROLL, IFX_HOLD, o ambas. Si se omite este parámetro será un cursor secuencial normal.

blobidarray

Si existen columnas BLOB (BYTE o TEXT) en la consulta, puede agregar un parámetro blobidarray que contenga los identificadores BLOB correspondientes.

Valores devueltos

Devuelve un identificador Informix válido en caso de éxito, o FALSE si ocurre algún error.

Ejemplos

Ejemplo #1 Ver todas las filas de la tabla "orders" en formato HTML

<?php
ifx_textasvarchar
(1);      // se usa el modo de texto para blobs
$res_id ifx_query("select * from orders"$conn_id);
if (! 
$res_id) {
    
printf("No se pudo ejecutar la consulta : %s\n<br />%s<br />\n"ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id"border=\"1\"");
ifx_free_result($res_id);
?>

Ejemplo #2 Insertar registros en la tabla "catalog"

<?php

// create blob id's for a byte and text column
$textid ifx_create_blob(00"Text column in memory");
$byteid ifx_create_blob(10"Byte column in memory");

// store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// launch query
$query "insert into catalog (stock_num, manu_code, " .
         
"cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id ifx_query($query$conn_id$blobidarray);
if (! 
$res_id) {
    
/* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

Ver también