Lire le résultat d'une requête
Il faut utiliser conjointement 2 fonctions : OCIFetch et OCIResult. OCIFetch permet de récupérer une ligne du résultat, alors que OCIResult permet de lire une valeur d'une ligne récupérée par OCIFetch. Dans l'exemple suivant, on va interroger la table articles contenant les colonnes article et prix :
$stmt = OCIParse($connexion, "SELECT * FROM articles WHERE prix<=100");
OCIExecute($stmt);
$compteur = 0;
while (OCIFetch($stmt)) {
$compteur++;
echo OCIResult($stmt, "ARTICLE")." coûte ";
echo OCIResult($stmt, "PRIX")." F<BR>\n";
}
OCIFreeStatement($stmt);
echo "$compteur articles trouvés.";
Même si la requéte ne renvoie qu'une seule ligne (cas d'un "SELECT COUNT(*)" par exemple), il est indispensable de faire un OCIFetch pour récupérer le résultat. Exemple :
$query = "SELECT COUNT(*) total FROM articles WHERE prix<=100";
$stmt = OCIParse($connexion, $query);
OCIExecute($stmt);
OCIFetch($stmt);
echo OCIResult($stmt, "TOTAL")." articles à moins de 100 F.";
OCIFreeStatement($stmt);
Partager