(No version information available, might only be in Git)
ingres_unbuffered_query — Envía una consulta SQL no almacenada en búfer a Ingres
$link
, string $query
[, array $params
[, string $types
]] ) : mixed
ingres_unbuffered_query() sends the given
query
to the Ingres server.
La consulta es parte de la transacción abierta actualmente. Si no hay ninguna transacción abierta, ingres_unbuffered_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. Igres solamente permite la activación de una sentencia almacenada en búfer. La extensión cerrará cualquier sentencia no almacenada en búfer activa antes de ejecuatar una sentencia SQL. Además, no se puede usar ingres_result_seek() para posicionar la fila antes de la obtención.
Nota: Configuraciones relacionadas
Véanse tambén las directivas ingres.describe y ingres.utf8 en 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 en la documentación de Ingres). Véase el parámetor query de ingres_query() para una lista de las sentencias SQL que no se pueden ejecutar mediante ingres_unbuffered_query().
Los datos dentro de la consulta deberían estar apropiadamente escapados.
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. Véaes el parámetro types de ingres_query() para una lista de los códigos de los tipos.
ingres_unbuffered_query() devuelve un identificador de resultados de consulta
cuando hay más filas que obtener, o FALSE
cuando no hay más filas, como en el
case de las sentencias sentencia INSERT, UPDATE o DELETE. Para comprobar si ocurrió
un error, use ingres_errno(),
ingres_error() o
ingres_errsqlstate().
Ejemplo #1 Ejecutar un SELECT sencillo no almacenado en búfer
<?php
$enlace = ingres_connect("demodb");
$resultado = ingres_unbuffered_query($enlace, "select * from user_profile");
while ($fila = ingres_fetch_row($resultado)) {
echo $fila[1];
echo $fila[2];
}
?>
Ejemplo #2 Passing query parameters to ingres_unbuffered_query()
<?php
$enlace = ingres_connect("demodb");
$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$resultado = ingres_unbuffered_query($enlace, $query, $params);
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_unbuffered_query($enlace, $consulta , $parámetros, $tipos_parámetros);
if (ingres_errno())
{
echo ingres_errno() . "-" . ingres_error() . "\n";
}
?>