Start · Sprachen · PHP · Referenz · ociresult

ociresult

Funktion

Veralteter Alias von <code>oci_result()</code> — gibt den Wert einer Spalte aus der aktuellen Zeile eines OCI-Statements zurück.

seit PHP 4.0.0 Kategorie: db

Signatur

ociresult(resource $statement, mixed $column): mixed

Beschreibung

ociresult() ist ein veralteter Alias der Funktion oci_result() aus der Oracle Call Interface (OCI8)-Erweiterung für PHP. Sie dient dazu, den Wert einer bestimmten Spalte aus der zuletzt mit ocifetch() bzw. oci_fetch() geholten Zeile eines Abfrageergebnisses zu lesen.

Der Parameter column kann entweder der 1-basierte Index der Spalte (als int) oder der Spaltenname (als string, in Großbuchstaben) sein. Diese Funktion wird typischerweise in Verbindung mit einer Schleife über ocifetch() verwendet, um Zeile für Zeile zu iterieren und einzelne Felder abzurufen.

Achtung: Diese Funktion ist seit PHP 8.0 nicht mehr verfügbar, da alle oci*-Aliase entfernt wurden. Verwende stattdessen ausschließlich oci_result(). In älteren Codebasen (PHP 5.x, 7.x) ist die Funktion noch vorhanden, aber ihre Verwendung sollte durch das moderne Äquivalent ersetzt werden.

Die Funktion eignet sich für niedrigstufigen Zeilenzugriff auf Oracle-Abfrageergebnisse, wenn man nicht das gesamte Ergebnis in ein Array laden möchte, sondern feldweise verarbeiten will.

Parameter

Name Typ Default Beschreibung
$statement Pflicht resource Ein gültiges OCI-Statement-Handle, das zuvor mit ociparse() erzeugt und mit ociexecute() ausgeführt wurde.
$column Pflicht mixed Entweder der 1-basierte Spaltenindex (int) oder der Spaltenname (string) in Großbuchstaben, z. B. 'VORNAME'.

Rückgabewert

Typ
mixed
Beschreibung
Gibt den Wert der angegebenen Spalte der aktuellen Zeile zurück. Bei Erfolg wird ein skalarer Wert (String, Zahl) oder false bei einem Fehler zurückgegeben. Ist der Spaltenwert NULL, wird ebenfalls null zurückgegeben.

Beispiele

Zeilenweise Abfrage mit ociresult()

<?php
// Verbindung zur Oracle-Datenbank herstellen
$conn = ocilogon('benutzer', 'passwort', 'meine_datenbank');

// SQL-Abfrage vorbereiten
$stmt = ociparse($conn, 'SELECT VORNAME, NACHNAME FROM mitarbeiter WHERE ROWNUM <= 5');
ociexecute($stmt);

// Zeilenweise iterieren
while (ocifetch($stmt)) {
    $vorname  = ociresult($stmt, 'VORNAME');
    $nachname = ociresult($stmt, 'NACHNAME');
    echo $vorname . ' ' . $nachname . PHP_EOL;
}

// Ressourcen freigeben
ocilogoff($conn);
?>
Max Mustermann Erika Beispiel ...

Spalte per Index ansprechen

<?php
$conn = ocilogon('benutzer', 'passwort', 'meine_datenbank');
$stmt = ociparse($conn, 'SELECT ABTEILUNG, ANZAHL FROM abteilungen ORDER BY ANZAHL DESC');
ociexecute($stmt);

while (ocifetch($stmt)) {
    // Spalten per 1-basiertem Index abrufen
    $abteilung = ociresult($stmt, 1);
    $anzahl    = ociresult($stmt, 2);
    echo "Abteilung: {$abteilung}, Mitarbeiter: {$anzahl}" . PHP_EOL;
}

ocilogoff($conn);
?>
Abteilung: Entwicklung, Mitarbeiter: 42 Abteilung: Vertrieb, Mitarbeiter: 30 ...

// Wichtig · Fallstricke

Deprecation / Entfernung: ociresult() und alle anderen oci*-Aliase wurden in PHP 8.0 vollständig entfernt. Jeglicher Code, der diese Funktion verwendet, führt unter PHP 8 zu einem fatalen Fehler. Migriere bestehenden Code auf oci_result().

In PHP 5.3 bis 7.x erzeugt die Verwendung dieser Funktion eine E_DEPRECATED-Warnung, wenn error_reporting entsprechend konfiguriert ist. Es empfiehlt sich, den Code frühzeitig auf die nicht-alias-basierte API umzuschreiben.

Spaltennamen müssen in Großbuchstaben angegeben werden, da Oracle Bezeichner standardmäßig in Großschreibung speichert. Bei Verwendung von Anführungszeichen in der SQL-Abfrage kann die Groß-/Kleinschreibung abweichen.