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