Start · Sprachen · PHP · Referenz · ocinumcols

ocinumcols

Funktion

Alias von <code>oci_num_fields()</code> — gibt die Anzahl der Spalten in einem OCI-Abfrageergebnis zurück.

seit PHP 5.0.0 Kategorie: db

Signatur

ocinumcols(resource $statement): int|false

Beschreibung

ocinumcols() ist ein veralteter Alias für die Funktion oci_num_fields(). Sie gibt die Anzahl der Spalten (Felder) zurück, die ein vorbereitetes und ausgeführtes OCI8-Statement-Handle enthält. Die Funktion ist nützlich, um dynamisch die Struktur einer Abfrageantwort zu ermitteln, ohne die Spaltennamen im Voraus kennen zu müssen.

Typischerweise wird sie eingesetzt, wenn Abfrageergebnisse generisch verarbeitet werden sollen – etwa beim Aufbau allgemeiner Datenbankexport-Routinen oder zur dynamischen Tabellenausgabe. In Verbindung mit oci_field_name() lässt sich die vollständige Spaltenstruktur eines Ergebnisses iterativ auslesen.

Achtung: Diese Funktion ist ein veralteter Alias und sollte in neuem Code nicht mehr verwendet werden. Stattdessen sollte direkt oci_num_fields() genutzt werden, da Aliasse in zukünftigen PHP-Versionen entfernt werden könnten.

Parameter

Name Typ Default Beschreibung
$statement Pflicht resource Ein gültiges OCI8-Statement-Handle, das zuvor mit oci_parse() erstellt und mit oci_execute() ausgeführt wurde.

Rückgabewert

Typ
int|false
Beschreibung
Gibt die Anzahl der Spalten im Ergebnis als int zurück. Im Fehlerfall (z. B. ungültiges Statement-Handle) wird false zurückgegeben.

Beispiele

Anzahl der Spalten einer Oracle-Abfrage ermitteln

<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$sql = 'SELECT mitarbeiter_id, vorname, nachname, abteilung FROM mitarbeiter';
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);

$anzahlSpalten = ocinumcols($stmt);
echo "Anzahl der Spalten: " . $anzahlSpalten . "\n";

oci_free_statement($stmt);
oci_close($conn);
?>
Anzahl der Spalten: 4

Dynamische Spaltenausgabe mit ocinumcols und oci_field_name

<?php
$conn = oci_connect('benutzer', 'passwort', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM produkte WHERE ROWNUM &lt;= 5';
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);

$anzahlSpalten = ocinumcols($stmt);
echo "Spalten (" . $anzahlSpalten . "):\n";
for ($i = 1; $i &lt;= $anzahlSpalten; $i++) {
    echo "  " . $i . ": " . oci_field_name($stmt, $i) . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>
Spalten (3): 1: PRODUKT_ID 2: BEZEICHNUNG 3: PREIS

// Wichtig · Fallstricke

Deprecation: ocinumcols() ist ein veralteter Alias für oci_num_fields(). In neuem Code sollte ausschließlich oci_num_fields() verwendet werden. PHP-Aliasse für OCI8-Funktionen können in zukünftigen Versionen ohne weitere Ankündigung entfernt werden.

Die Funktion setzt voraus, dass das Statement-Handle bereits mit oci_execute() ausgeführt wurde. Wird ein nicht ausgeführtes Handle übergeben, kann das Ergebnis undefiniert oder false sein.