Descripción
int
ifx_query ( string query [, int link_identifier [, int cursor_type [, mixed blobidarray]]])
Devuelve un identificador positivo de resultado si tuvo éxito, FALSE en
otro caso.
Un entero (integer) "result_id" usado por otras funciones para obtener el resultado
de la consulta. Es definido "affected_rows" (registros procesados) y se puede obtener
mediante la función ifx_affected_rows().
ifx_query() envía una consulta a la base de datos activa
actualmente en el servidor, la cual está representada por el identificador de
enlace especificado (link_identifier). Si el identificador no es definido, el último
enlace abierto es asumido. Si el enlace no se encuentra abierto,
ifx_connect() es llamado y utilizado.
Ejecuta una consulta (query) sobre una conexión
(link_identifier). Un cursor es definido y abierto
para las consultas de selección. El parámetro opcional tipo de cursor
(cursor_type) te permite que sea un cursor de tipo
"scroll" y/o "hold". Es una máscara y puede ser IFX_SCROLL, IFX_HOLD o ambos.
Las consultas que no son de selección son ejecutadas inmediatamente.
Para cualquier tipo de consulta el número (estimado o real) de registros procesados
es guardo y se puede obtener mediante ifx_affected_rows().
Si tienes columnas BLOB (BYTE o TEXT) en una consulta de actualización, puedes
añadir un parámetro blobidarray conteniendo los
identificadores de blob y sustituir los valores de esas columnas por una "?"
en el texto de la consulta.
Si el contenido de la columna de tipo TEXT (o BYTE) lo permite, también puedes
usar "ifx_textasvarchar(1)" y "ifx_byteasvarchar(1)". Esto supone manejar
columnas de tipo TEXT (o BYTE) como si fueran columnas normales de tipo VARCHAR
(pero teniendo en cuenta que tendrán un mayor tamaño que el habitual), para
consultas de selección y no necesitas preocuparte por los identificadores de blob.
La opción por defecto ifx_textasvarchar(0) o ifx_byteasvarchar(0) devuelve
identificadores de blob (valores enteros) para las consultas de selección. Puedes
obtener el contenido del blob como una cadena o un fichero con las funciones para
blob (ver más adelante).
Examina también:
ifx_connect().
Ejemplo 1. Mostrar todos los registros de la tabla "orders" como una tabla html ifx_textasvarchar(1); // usa "modo texto" para blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
printf("Can't select orders : %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. Inserta valores en la tabla "catalog" // crea identificadores de blob para una columna de tipo byte y otra text
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
// almacena los identificadores de blob en un array llamado blobid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
// lanza la consulta
$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 ...
}
// libera el resultado
ifx_free_result($res_id); |
|