(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)
ingres_query — Envía una consulta SQL a Ingres
ingres_query() envía la consulta dada por
query
al servidor Ingres.
La consulta es parte de la transacción abierta actualmente. Si no hay ninguna transacción abierta, ingres_query() abrirá una nueva. Para cerrar la transacción, se puede llamar tanto a ingres_commit() para consignar los cambios hechos a la base de datos, como a ingres_rollback() para cancelar dichos cambios. Cuando el script finaliza, cualquier transacción abierta será revertida (invocando a ingres_rollback()). También se puede usar ingres_autocommit() antes de abrir una nueva transacción para que cada consulta SQL sea consignada automáticamente.
Nota: Configuración relacionada
Véase también las directivas ingres.describe, ingres.scrollable y ingres.utf8 de la sección Configuración en tiempo de ejecución
link
El identificador de enlace de la conexión
query
Una consulta SQL válida (véase la guía de referencia de SQL de la documentación de Ingres).
Los datos dentro de la consulta deberían estar apropiadamente escapados.
Los siguientes tipos de consultas SQL no se pueden enviar con esta función:
params
Un array de valores de parámetros para usarlos con la consulta
types
Un string que contiene una secuencia de los tipos de los valores de los parámetros pasados. Cuando ingres.describe está habilitado, este parámetro se puede ignorar, ya que el controlador obtiene automáticamente los tipos esperados de los parámetros desde el servidor.
Código del tipo | Tipo de Ingres |
---|---|
a | BOOLEAN |
b | BYTE |
B | LONG BYTE/BLOB |
c | CHAR |
d | DATE/ANSIDATE/TIMESTAMP/TIME |
f | FLOAT |
i | INTEGER |
L | LONG TEXT |
m | MONEY |
M | LONG NVARCHAR |
n | NCHAR |
N | NVARCHAR |
t | TEXT |
v | VARCHAR |
V | LONG VARCHAR |
ingres_query() devuelve un identificador de resultados de consulta en
caso de éxito, o FALSE
en caso de error. Para comprobar si ocurrió
un error, use ingres_errno(),
ingres_error() o
ingres_errsqlstate().
Ejemplo #1 Enviar un simple select
<?php
$enlace = ingres_connect("demodb");
$resultado = ingres_query($enlace, "select * from user_profile");
while ($fila = ingres_fetch_row($resultado)) {
echo $fila[1];
echo $fila[2];
}
?>
Ejemplo #2 Pasar parámetros de consulta a ingres_query()
<?php
$enlace = ingres_connect("demodb");
$parámetros[] = "Emma";
$consulta = "select * from user_profile where up_first = ?";
$resultado = ingres_query($enlace, $consulta, $parámetros);
while ($fila = ingres_fetch_row($resultado)) {
echo $fila[1];
echo $fila[2];
}
?>
Ejemplo #3 Insertar datos BLOB con tipos de parámetros
<?php
$enlace = ingres_connect("demodb");
//Abrir una foto
$fh = fopen("photo.jpg","r");
$datos_blob = stream_get_contents($fh);
fclose($fh);
//Preparar los parámetros
$parámetros[] = $datos_blob;
$parámetros[] = 1201;
//Definir los tipos de parámetros
$tipos_parámetros = "Bi";
$consulta = "update user_profile set up_image = ? where up_id = ?";
$resultado = ingres_query($enlace, $consulta , $parámetros, $tipos_parámetros);
if (ingres_errno())
{
echo ingres_errno() . "-" . ingres_error() . "\n";
}
ingres_commit($enlace);
ingres_close($enlace);
?>