PHP Manual
Prev |  | Next

# dbx_query

(PHP 4 >= 4.0.6)

dbx_query -- Send a query and fetch all results (if any)

## Description

``dbx_result_object dbx_query` (dbx_link_object link_identifier, string sql_statement [, long flags])`

Warning
This function is EXPERIMENTAL. The behaviour of this function, the name of this function, and anything else documented about this function may change in a future release of PHP without notice. Be warned and use this function at your own risk.

Returns a dbx_result_object or 1 on success (a result object is only returned for sql-statements that return results) or 0 on failure. The `flags` parameter is used to control the amount of information that is returned. It may be any combination of the constants DBX_RESULT_INFO, DBX_RESULT_INDEX, DBX_RESULT_ASSOC, OR-ed together. DBX_RESULT_INFO provides info about columns, such as field names and field types. DBX_RESULT_INDEX returns the results in a 2d indexed array (e.g. data[2][3], where 2 is the row (or record) number and 3 is the column (or field) number), where the first row and column are indexed at 0. DBX_RESULT_ASSOC associates the column indices with field names. Note that DBX_RESULT_INDEX is always returned, regardless of the `flags` parameter. If DBX_RESULT_ASSOC is specified, DBX_RESULT_INFO is also returned even if it wasn't specified. This means that effectively only the combinations DBX_RESULT_INDEX, DBX_RESULT_INDEX | DBX_RESULT_INFO and DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC are possible. This last combination is the default if the `flags` parameter isn't specified. Associated results are actual references to the indexed data, so if you modify `data[0][0]`, then `data[0]['fieldnameforfirstcolumn']` is modified as well.

A dbx_result_object has five members (possibly four depending on `flags`), 'handle', 'cols', 'rows', 'info' (optional) and 'data'. Handle is a valid result identifier for the specified module, and as such can be used in module-specific functions, as seen in the example:

    $result = dbx_query ($link, "SELECT id FROM tbl");
    mysql_field_len ($result->handle, 0);

The cols and rows members contain the number of columns (or fields) and rows (or records) respectively, e.g.

    $result = dbx_query ($link, "SELECT id FROM tbl");
    echo "result size: " . $result->rows . " x " . $result->cols . "<br>\n";

The info member is only returned if DBX_RESULT_INFO and/or DBX_RESULT_ASSOC are specified in the `flags` parameter. It is a 2d array, that has two named rows ("name" and "type") to retrieve column information, e.g.

    $result = dbx_query ($link, "SELECT id FROM tbl");
    echo "column name: " . $result->info["name"][0] . "<br>\n";
    echo "column type: " . $result->info["type"][0] . "<br>\n";

The data member contains the actual resulting data, possibly associated with column names as well. If DBX_RESULT_ASSOC is set, it is possible to use `$result->data[2]["fieldname"]`.

Example 1. dbx_query() example
    <?php
    $link = dbx_connect ("odbc", "", "db", "username", "password")
        or die ("Could not connect");
    $result = dbx_query ($link, "SELECT id, parentid, description FROM tbl");
    if ($result==0) echo "Query failed\n<br>";
    elseif ($result==1) {
        echo "Query executed successfully\n<br>";
    } else {
        $rows=$result->rows;
        $cols=$result->cols;
        echo "<p>table dimension: {$result->rows} x {$result->cols}<br><table border=1>\n";
        echo "<tr>";
        for ($col=0; $col<$cols; ++$col) {
            echo "<td>-{$result->info["name"][$col]}-<br>-{$result->info["type"][$col]}-</td>";
        }
        echo "</tr>\n";
        for ($row=0; $row<$rows; ++$row){
            echo "<tr>";
            for ($col=0; $col<$cols; ++$col) {
                echo "<td>-{$result->data[$row][$col]}-</td>";
            }
            echo "</tr>\n";
        }
        echo "</table><p>\n";
        echo "table dimension: {$result->rows} x id, parentid, description<br><table border=1>\n";
        for ($row=0; $row<$rows; ++$row) {
            echo "<tr>";
            echo "<td>-{$result->data[$row]["id"]}-</td>";
            echo "<td>-{$result->data[$row]["parentid"]}-</td>";
            echo "<td>-{$result->data[$row]["description"]}-</td>";
            echo "</tr>\n";
        }
        echo "</table><p>\n";
    }
    dbx_close($link);
    ?>

> Note: Always refer to the module-specific documentation as well.

See also: dbx_connect().

Prev | Home | Next
dbx_error | Up | dbx_sort