ingres_unbuffered_query

(No version information available, might only be in SVN)

ingres_unbuffered_queryEnvoie une requête sans buffer à Ingres

Description

mixed ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_unbuffered_query() envoie la requête SQL query au serveur Ingres.

La requête fait alors partie de la transaction courante. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer la transaction, vous pouvez appeler soit ingres_commit() pour valider les modifications, ou bien ingres_rollback() pour les annuler. Lorsque le script s'achève, toutes les transactions qui n'auront pas été validées, seront annulées, en appelant ingres_rollback(). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une nouvelle transaction pour forcer la validation immédiate de toutes les requêtes. Ingres permet une seule requête sans buffer active à un moment donné. L'extension va fermer toute requête active avant d'exécuter une nouvelle requête SQL. De plus, vous ne pouvez pas utiliser ingres_result_seek() pour vous positionner à la ligne que vous souhaitez dans le résultat.

Note: Configurations associées

Voyez aussi les directives ingres.describe et ingres.utf8 dans les directives d'exécution.

Liste de paramètres

link

La ressource de connexion à Ingres

query

Une requête SQL valide (voyez le SQL reference guide) pour le serveur Ingres. Voyez la documentation du paramètre query la fonction ingres-query() pour une liste de requêtes SQL qui ne peuvent pas être exécutées via la fonction ingres_unbuffered_query().

Les données contenues dans la requête doivent être proprement échappées.

params

Un tableau de valeurs de paramètre à utiliser avec la requête

types

Une chaîne contenant une séquence de types pour les paramètres fournis à la requête. Voyez la documentation de la fonction ingres-query() pour obtenir la liste des types.

Valeurs de retour

ingres_unbuffered_query() retourne une ressource de résultats lorsqu'il y a des lignes à lire, et sinon, elle retourne FALSE s'il n'y a pas de lignes à lire, comme pour les requêtes INSERT, UPDATE et DELETE. Pour savoir s'il y a eu une erreur, utilisez l'une des fonctions ingres_errno(), ingres_error() ou ingres_errsqlstate().

Exemples

Exemple #1 Exécution d'une requête SQL sans buffer sur Ingres

<?php
$link = ingres_connect("demodb");

$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
	echo $row[1];
	echo $row[2];
}
?>

Exemple #2 Passage de paramètres de requêtes à ingres_unbuffered_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
	echo $row[1];
	echo $row[2];
}
?>

Exemple #3 Insertion d'un BLOB dans les paramètres de requêtes SQL Ingres

<?php
$link = ingres_connect("demodb");

//Ouverture d'une photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Préparation des parametres
$params[] = $blob_data;
$params[] = 1201;

//Définition des types de paramètres
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);

if (ingres_errno())
{
	echo ingres_errno() . " : " . ingres_error() . "\n";
}
?>

Voir aussi

LoadingChargement en cours