Signatur
Beschreibung
db2_result() liest den Wert einer bestimmten Spalte aus der aktuell gültigen Ergebniszeile eines Statement-Handles. Die Funktion wird typischerweise zusammen mit db2_fetch_row() eingesetzt, das die interne Zeilenposition um eine Zeile vorwärts bewegt und anschließend db2_result() den konkreten Spaltenwert liefert.
Der Parameter column kann entweder als nullbasierter Integer-Index (0, 1, 2 …) oder als Spaltenname (String) angegeben werden. Letztere Variante ist oft leichter lesbar und wartbarer, kann jedoch je nach Konfiguration abhängig von der Groß-/Kleinschreibung sein.
Diese Funktion ist besonders nützlich, wenn aus einer breiten Ergebnismenge nur einzelne Spalten benötigt werden, ohne ein komplettes Zeilen-Array aufbauen zu müssen. Sie eignet sich gut für einfache Schleifen mit wenigen relevanten Feldern.
Ist kein gültiger Fetch-Schritt vorher ausgeführt worden oder liegt der Spaltenindex außerhalb des gültigen Bereichs, gibt die Funktion null zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $stmt Pflicht | resource | Ein gültiges Statement-Handle, das von db2_exec() oder db2_execute() zurückgegeben wurde und dessen aktuelle Zeile bereits per db2_fetch_row() positioniert worden ist. |
|
| $column Pflicht | int|string | Der nullbasierte Index der Spalte (z. B. 0 für die erste Spalte) oder der Name der Spalte als String (z. B. 'NAME'). Bei Verwendung von Spaltennamen kann Groß-/Kleinschreibung relevant sein. |
Rückgabewert
string, int, float). Ist der Spaltenwert in der Datenbank NULL, wird null zurückgegeben. Bei ungültigem Index oder fehlendem vorherigem Fetch wird ebenfalls null zurückgegeben.Beispiele
Spalten per Index und Name auslesen
<?php
$conn = db2_connect('SAMPLE', 'db2user', 'geheimesPasswort');
if ($conn) {
$sql = 'SELECT EMPNO, FIRSTNME, LASTNAME FROM EMPLOYEE FETCH FIRST 5 ROWS ONLY';
$stmt = db2_exec($conn, $sql);
if ($stmt) {
while (db2_fetch_row($stmt)) {
$empno = db2_result($stmt, 0); // per Index
$vorname = db2_result($stmt, 'FIRSTNME'); // per Name
$nachname = db2_result($stmt, 'LASTNAME');
echo "$empno: $vorname $nachname\n";
}
}
db2_close($conn);
}
Einzelnen Aggregatwert abrufen
<?php
$conn = db2_connect('SAMPLE', 'db2user', 'geheimesPasswort');
if ($conn) {
$sql = 'SELECT COUNT(*) AS ANZAHL FROM EMPLOYEE';
$stmt = db2_exec($conn, $sql);
if ($stmt && db2_fetch_row($stmt)) {
$anzahl = db2_result($stmt, 'ANZAHL');
echo "Anzahl Mitarbeiter: " . $anzahl;
}
db2_close($conn);
}
// Wichtig · Fallstricke
Reihenfolge beachten: db2_result() muss stets nach einem erfolgreichen Aufruf von db2_fetch_row() aufgerufen werden. Ohne vorherigen Fetch ist keine gültige aktuelle Zeile vorhanden, und die Funktion gibt null zurück, ohne eine Fehlermeldung auszugeben.
Spaltennamen und Groß-/Kleinschreibung: Manche IBM-DB2-Konfigurationen normalisieren Spaltennamen in Großbuchstaben. Wenn db2_result($stmt, 'name') unerwartet null liefert, sollte 'NAME' (Großschreibung) versucht werden.
Alternative Fetch-Methoden: Für das Abrufen ganzer Zeilen als Array oder Objekt stehen db2_fetch_assoc(), db2_fetch_array() und db2_fetch_object() zur Verfügung, die in vielen Fällen komfortabler sind als die Kombination aus db2_fetch_row() und db2_result().