oci_fetch_object
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_object — Liefert die nächste Zeile einer Abfrage als Objekt
Beschreibung
oci_fetch_object
( resource $statement
) : object
Für Details zur vom OCI8-Treiber durchgeführten
Umsetzung von Datentypen siehe die vom
Treiber unterstützen Datentypen.
Parameter-Liste
-
statement
-
Der Identifizierer eines
gültigen OCI8-Ausdrucks, der von oci_parse() erzeugt
und von oci_execute() oder einem REF
CURSOR
-Ausdruck verwendet wird.
Rückgabewerte
Gibt ein Objekt zurück. Jede Eigenschaft des Objekts entspricht einer
Spalte der Zeile. Gibt es keine weiteren Zeilen in
statement
, dann wird false
zurückgegeben.
Jegliche LOB
-Spalten werden als LOB-Kennungen
zurückgegeben.
DATE
-Spalten werden als gemäß des aktuellen
Datumsformats formatierte Zeichenketten zurückgegeben. Das Standardformat
kann mit Oracle-Umgebungsvariablen wie NLS_LANG
geändert
werden, oder auch durch den zuvor ausgeführten Befehl ALTER
SESSION SET NLS_DATE_FORMAT
.
Die standardmäßigen Oracle-Spaltennamen, die nicht zwischen Groß- und
Kleinschreibung unterscheiden, erzeugen Eigenschaftsnamen in
Großbuchstaben. Spaltennamen, die zwischen Groß- und Kleinschreibung
unterscheiden, verwenden die genaue Schreibweise.
var_dump() kann auf das Ergebnisobjekt angewendet
werden, um die richtige Schreibweise für den Eigenschaftszugriff zu prüfen.
Die Eigenschaftswerte sind null
für jeglche
NULL
-Datenfelder.
Beispiele
Beispiel #1 oci_fetch_object()-Beispiel
<?php
/*
Vor der Ausführung ist die Tabelle zu erstellen:
CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
INSERT INTO mytab (id, description) values (1, 'Currywurst mit Pommes');
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) {
// verwende Eigenschaftsnamen in Großschrift für jede Standard-Oracle-Spalte
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}
// Ausgabe:
// 1
// Currywurst mit Pommes
oci_free_statement($stid);
oci_close($conn);
?>
Beispiel #2
oci_fetch_object() mit Spaltennamen, die zwischen
Groß- und Kleinschreibung unterscheiden.
<?php
/*
Vor der Ausführung ist die Tabelle mit Spaltennamen, die zwischen Groß- und
Kleinschreibung unterscheiden, zu erstellen:
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Eiskaffee');
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) {
// verwende Eigenschaftsnamen in Großschrift für jede Standard-Oracle-Spalte
echo $row->ID . "<br>\n";
// verwende die genaue Schreibweise für Spaltennamen, die zwischen Groß-
// und Kleinschreibung unterscheiden
echo $row->MyDescription . "<br>\n";
}
// Ausgabe:
// 1
// Eiskaffee
oci_free_statement($stid);
oci_close($conn);
?>
Beispiel #3 oci_fetch_object() mit LOBs
<?php
/*
Vor der Ausführung ist die Tabelle zu erstellen:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'Eine sehr lange Zeichenkette');
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";
// das folgende gibt die ersten 15 Bytes von DESCRIPTION aus
echo $row->DESCRIPTION->read(15) . "<br>\n";
}
// Ausgabe:
// 1
// Eine sehr lange
oci_free_statement($stid);
oci_close($conn);
?>
Siehe auch
- oci_fetch() - Ruft die nächste Zeile einer Abfrage in einen internen Puffer ab
- oci_fetch_all() - Ruft mehrere Datensätze einer Abfrage in ein zweidimensionales Array ab
- oci_fetch_assoc() - Liefert die nächste Zeile einer Abfrage als assoziatives Array
- oci_fetch_array() - Liefert die nächste Zeile einer Abfrage als assoziatives oder numerisches Array
- oci_fetch_row() - Liefert die nächste Zeile einer Abfrage als numerisches Array