(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().
|