Signatur
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
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);
?>
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);
?>
// 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.