Start · Sprachen · PHP · Referenz · db2_cursor_type

db2_cursor_type

Funktion

Gibt den Cursor-Typ zurück, der für eine vorbereitete oder ausgeführte DB2-Statement-Ressource verwendet wird.

seit PHP 5.1.0 Kategorie: db

Signatur

db2_cursor_type(resource $stmt): int

Beschreibung

db2_cursor_type() ermittelt, welcher Cursor-Typ einer gegebenen DB2-Statement-Ressource zugewiesen ist. Es wird unterschieden zwischen einem Forward-only-Cursor (Vorwärts-Cursor) und einem Scrollable-Cursor (bidirektonaler Cursor), der das Navigieren in Ergebnismengen in beide Richtungen erlaubt.

Die Funktion gibt eine der beiden Konstanten DB2_FORWARD_ONLY oder DB2_SCROLLABLE zurück. Diese Information ist nützlich, wenn Code mit unterschiedlichen Statement-Ressourcen umgehen muss und dynamisch prüfen soll, welche Navigation in der Ergebnismenge möglich ist.

Scrollable Cursors werden bei db2_prepare() oder db2_exec() über die Option cursor in einem Optionen-Array konfiguriert. Ohne explizite Angabe wird standardmäßig ein Forward-only-Cursor verwendet.

Diese Funktion ist Teil der IBM DB2-Erweiterung (ibm_db2) für PHP und steht nur zur Verfügung, wenn diese Erweiterung korrekt installiert und aktiviert ist.

Parameter

Name Typ Default Beschreibung
$stmt Pflicht resource Eine gültige DB2-Statement-Ressource, die durch db2_prepare() oder db2_exec() erzeugt wurde.

Rückgabewert

Typ
int
Beschreibung
Gibt DB2_FORWARD_ONLY zurück, wenn das Statement einen Vorwärts-Cursor verwendet, oder DB2_SCROLLABLE, wenn ein bidirektonaler Cursor verwendet wird.

Beispiele

Cursor-Typ eines Standard-Statements prüfen

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'secret');
if ($conn) {
    $sql = 'SELECT id, name FROM users';
    $stmt = db2_prepare($conn, $sql);

    $cursorType = db2_cursor_type($stmt);

    if ($cursorType === DB2_FORWARD_ONLY) {
        echo 'Cursor-Typ: Forward-only (Standard)';
    } elseif ($cursorType === DB2_SCROLLABLE) {
        echo 'Cursor-Typ: Scrollable';
    }

    db2_close($conn);
}
Cursor-Typ: Forward-only (Standard)

Scrollable Cursor erstellen und Typ prüfen

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'secret');
if ($conn) {
    $sql = 'SELECT id, name FROM users';
    $options = ['cursor' => DB2_SCROLLABLE];
    $stmt = db2_prepare($conn, $sql, $options);

    $cursorType = db2_cursor_type($stmt);

    if ($cursorType === DB2_SCROLLABLE) {
        echo 'Scrollable Cursor aktiv – Navigation in beide Richtungen möglich.';
        db2_execute($stmt);
        // Letzten Datensatz direkt abrufen
        $row = db2_fetch_array($stmt, DB2_LAST_ROW);
        print_r($row);
    }

    db2_close($conn);
}
Scrollable Cursor aktiv – Navigation in beide Richtungen möglich.

// Wichtig · Fallstricke

Verfügbarkeit: Die Funktion ist nur verfügbar, wenn die PHP-Erweiterung ibm_db2 installiert ist. Sie ist nicht Teil der Standard-PHP-Distribution und muss separat über PECL installiert werden.

Cursor-Typ und Performance: Scrollable Cursors verbrauchen in der Regel mehr Ressourcen auf dem Datenbankserver als Forward-only-Cursors. Verwende Scrollable Cursors nur dann, wenn eine rückwärtsgerichtete Navigation in der Ergebnismenge tatsächlich erforderlich ist.

Ungültige Ressource: Wird eine ungültige oder bereits geschlossene Statement-Ressource übergeben, gibt die Funktion einen Fehler aus. Stelle sicher, dass $stmt eine gültige Ressource ist, bevor du db2_cursor_type() aufrufst.