oci_fetch_object
(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)
oci_fetch_object — Lit une ligne d'un résultat sous forme d'objet
Description
$statement
)
Retourne un objet contenant la prochaine ligne de résultat d'une
requête. Chaque attribut de cet objet correspond à une colonne
de la ligne. Cette fonction est appelé typiquement dans une boucle
tant qu'elle ne retourne pas FALSE
, indiquant qu'il n'y a plus
de lignes de disponible.
Pour plus de détails sur le mapping des types de données effectué par l'extension OCI8, lisez les types de données supportés par le driver.
Liste de paramètres
-
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.
Valeurs de retour
Retourne un objet. Chaque attribut de cet objet correspond à une colonne de la ligne.
Si'il n'y a plus de lignes de disponible dans la requête statement
alors FALSE
est retourné.
Toutes les colonnes LOB sont retournées sous la forme de descripteurs LOB.
Les colonnes DATE sont retournées sous forme de chaînes formatées avec le format de date courante. Le format par défaut peut être changé à l'aide des variables d'environnement Oracle, comme NLS_LANG ou en exécutant la commande ALTER SESSION SET NLS_DATE_FORMAT.
Les noms de colonnes qui ne sont pas sensibles à la casse (par défaut sous Oracle), auront des noms d'attributs en majuscule. Les noms de colonnes qui sont sensibles à la casse, auront des noms d'attributs utilisant exactement la même casse de la colonne. Utilisez la fonction var_dump() sur l'objet de résultat pour vérifier la casse appropriée pour l'accès aux attributs.
Les valeurs d'attribut seront NULL
pour chaque champ de données NULL.
Exemples
Exemple #1 Exemple avec oci_fetch_object()
<?php
/*
Avant l'exécution, créez la table :
CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
COMMIT;
*/
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
// Utilisez des noms d'attributs sensibles à la casse pour chaque colonne standard Oracle
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}
// Affiche :
// 1
// Fish and Chips
oci_free_statement($stid);
oci_close($conn);
?>
Exemple #2 Exemple avec oci_fetch_object() avec des noms de colonne sensibles à la casse
<?php
/*
Avant l'exécution, créez la tableau avec une colonne dont le nom est sensible à la casse :
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
COMMIT;
*/
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
// Utilisez des noms d'attributs en majuscule pour chaque colonne Oracle standard
echo $row->ID . "<br>\n";
// Utilisez la casse exacte pour les noms de colonnes sensibles à la casse
echo $row->MyDescription . "<br>\n";
}
// Affiche :
// 1
// Iced Coffee
oci_free_statement($stid);
oci_close($conn);
?>
Exemple #3 Exemple avec oci_fetch_object() avec des LOBs
<?php
/*
Avant l'exécution, créez la table :
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
echo $row->ID . "<br>\n";
// Ce qui suit affichera les 11 premiers octets depuis DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// Affiche :
// 1
// A very long
oci_free_statement($stid);
oci_close($conn);
?>
Voir aussi
- oci_fetch() - Lit la prochaine ligne d'un résultat Oracle dans un buffer interne
- oci_fetch_all() - Lit plusieurs lignes d'un résultat dans un tableau multi-dimensionnel
- oci_fetch_assoc() - Lit une ligne d'un résultat sous forme de tableau associatif
- oci_fetch_array() - Lit une ligne d'un résultat sous forme de tableau associatif ou numérique
- oci_fetch_row() - Lit la prochaine ligne d'une requête sous forme de tableau numérique
Version en cache
23/12/2024 03:50:00 Cette version de la page est en cache (à la date du 23/12/2024 03:50:00) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.oci-fetch-object.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.