Start · Sprachen · PHP · Referenz · ocicolumnname

ocicolumnname

Funktion

Alias von <code>oci_field_name()</code> — gibt den Spaltennamen einer Oracle-Ergebnismenge anhand der Spaltenposition zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

ocicolumnname(resource $statement, int $column): string|false

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

Typ
string|false
Beschreibung
Gibt den Namen der angegebenen Spalte als 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);
Spaltennamen: Spalte 1: MITARBEITER_ID Spalte 2: VORNAME Spalte 3: NACHNAME

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.