(PHP 4, PHP 5 < 5.2.1)
ifx_query — Enviar una consulta Informix
$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).
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.
Devuelve un identificador Informix válido en caso de éxito, o FALSE
si ocurre algún error.
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(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "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);
?>