(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch — Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
Lit la prochaine ligne d'une requête dans un buffer interne accessible soit via la fonction oci_result(), soit en utilisant les variables précédemment définies avec la fonction oci_define_by_name().
Voir la fonction oci_fetch_array() pour des informations génériques sur la récupération de données.
statement
Un identifiant de requête OCI8
créé par la fonction oci_parse() et exécuté par la fonction
oci_execute(), ou un identifiant de requête REF
CURSOR
.
Retourne true
en cas de succès, ou false
s'il n'y a plus de lignes
de disponible pour la requête statement
.
Exemple #1 Exemple avec oci_fetch() avec des variables définies
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
// La définition doit s'effectuer AVANT l'exécution
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);
oci_execute($stid);
// Chaque récupération utilise les variables précédemment définies avec les données de la prochaine ligne
while (oci_fetch($stid)) {
echo "Location id $locid is $city<br>\n";
}
// Affiche :
// Location id 1000 is Roma
// Location id 1100 is Venice
oci_free_statement($stid);
oci_close($conn);
?>
Exemple #2 Exemple avec oci_fetch() et oci_result()
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
while (oci_fetch($stid)) {
echo oci_result($stid, 'LOCATION_ID') . " is ";
echo oci_result($stid, 'CITY') . "<br>\n";
}
// Affiche :
// 1000 is Roma
// 1100 is Venice
oci_free_statement($stid);
oci_close($conn);
?>
Note:
Cette fonction ne retournera pas de lignes depuis le jeu de résultats implicite depuis une base de données Oracle. Utilisez plutôt la fonction oci_fetch_array().