db2_fetch_both

Returns an array, indexed by both column name and position, representing a row in a result set

&reftitle.description; `array` `db2_fetch_both` `resource` `stmt` `int` `row_number`-1

Returns an array, indexed by both column name and position, representing a row in a result set. Note that the row returned by `db2_fetch_both` requires more memory than the single-indexed arrays returned by `db2_fetch_assoc` or `db2_fetch_array`.

&reftitle.parameters;

`stmt`

- A valid `stmt` resource containing a result set.

`row_number`

- Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

&reftitle.returnvalues;

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns &false; if there are no rows left in the result set, or if the row requested by `row_number` does not exist in the result set.

&reftitle.examples;

### Iterating through a forward-only cursor

If you call `db2_fetch_both` without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

    <?php

    $sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
    $stmt = db2_prepare($conn, $sql);
    $result = db2_execute($stmt);

    while ($row = db2_fetch_both($stmt)) {
        printf ("%-5d %-16s %-32s %10s\n",
            $row['ID'], $row[0], $row['BREED'], $row[3]);
    }
    ?>

&example.outputs;

    0     Pook             cat                                    3.20
    5     Rickety Ride     goat                                   9.70
    2     Smarty           horse                                350.00

### Retrieving specific rows with `db2_fetch_both` from a scrollable cursor

If your result set uses a scrollable cursor, you can call `db2_fetch_both` with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

    <?php

    $sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
    $result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

    $i=2;
    while ($row = db2_fetch_both($result, $i)) {
        printf ("%-5d %-16s %-32s %10s\n",
            $row[0], $row['NAME'], $row[2], $row['WEIGHT']);
        $i = $i + 2;
    }
    ?>

&example.outputs;

    0     Pook             cat                                    3.20
    5     Rickety Ride     goat                                   9.70
    2     Smarty           horse                                350.00

&reftitle.seealso;

- `db2_fetch_array`
- `db2_fetch_assoc`
- `db2_fetch_object`
- `db2_fetch_row`
- `db2_result`