Signatur
Beschreibung
ocicolumnname() ist ein veralteter Alias der Funktion oci_field_name(). Sie gibt den Namen der Spalte zurück, die durch den Index $column (1-basiert) im angegebenen OCI-Statement identifiziert wird.
Die Funktion ist nützlich, wenn die Spaltennamen einer Oracle-Abfrage dynamisch ermittelt werden sollen, zum Beispiel um Ergebnismengen generisch zu verarbeiten oder Tabellenköpfe für Ausgaben zu erzeugen.
Wichtig: Diese Funktion ist ein Alias und seit PHP 5.4 als veraltet eingestuft. Für neuen Code sollte ausschließlich oci_field_name() verwendet werden.
- Der Spaltenindex beginnt bei 1, nicht bei 0.
- Die Funktion gibt den Spaltennamen in der Groß-/Kleinschreibung zurück, wie Oracle ihn intern speichert — in der Regel in Großbuchstaben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $statement Pflicht | resource | Ein gültiges OCI-Statement-Handle, wie es von oci_parse() und oci_execute() erzeugt wird. |
|
| $column Pflicht | int | Die 1-basierte Spaltenposition in der Ergebnismenge. Die erste Spalte hat den Index 1. |
Rückgabewert
string zurück (üblicherweise in Großbuchstaben). Bei einem Fehler wird false zurückgegeben.Beispiele
Alle Spaltennamen einer Oracle-Abfrage ausgeben
<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
if (!$conn) {
die('Verbindung fehlgeschlagen');
}
$sql = 'SELECT mitarbeiter_id, vorname, nachname FROM mitarbeiter WHERE ROWNUM <= 5';
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
$anzahlSpalten = oci_num_fields($stmt);
echo "Spaltennamen:" . PHP_EOL;
for ($i = 1; $i <= $anzahlSpalten; $i++) {
// Veralteter Alias — besser: oci_field_name()
$name = ocicolumnname($stmt, $i);
echo " Spalte $i: $name" . PHP_EOL;
}
oci_free_statement($stmt);
oci_close($conn);
Dynamische HTML-Tabelle mit Spaltennamen als Kopfzeile
<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
$stmt = oci_parse($conn, 'SELECT abteilung_id, bezeichnung FROM abteilungen');
oci_execute($stmt);
$felder = oci_num_fields($stmt);
echo '<table border="1">';
echo '<tr>';
for ($i = 1; $i <= $felder; $i++) {
// Alias — bevorzuge oci_field_name()
echo '<th>' . htmlspecialchars(ocicolumnname($stmt, $i)) . '</th>';
}
echo '</tr>';
while ($row = oci_fetch_assoc($stmt)) {
echo '<tr>';
foreach ($row as $wert) {
echo '<td>' . htmlspecialchars((string)$wert) . '</td>';
}
echo '</tr>';
}
echo '</table>';
oci_free_statement($stmt);
oci_close($conn);
// Wichtig · Fallstricke
Deprecation-Hinweis: ocicolumnname() ist ein veralteter Alias für oci_field_name(). Seit PHP 5.4 wird empfohlen, nur noch die nicht-aliasierte Variante zu verwenden. In zukünftigen PHP-Versionen können Aliase ohne Vorwarnung entfernt werden.
Der zurückgegebene Spaltenname entspricht dem Oracle-internen Namen — standardmäßig in Großbuchstaben, sofern der Spaltenname nicht explizit in Anführungszeichen definiert wurde.