mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-16 00:48:54 +00:00
introduce brand new tagging in dbx.xml according to my discussion with Marc
Boeren. Anyone who finds difficult to figure out the changes, feel free to contact me! git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@70323 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
794bfcfb92
commit
3d0cae6885
1 changed files with 366 additions and 198 deletions
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.24 $ -->
|
||||
<!-- $Revision: 1.25 $ -->
|
||||
<reference id="ref.dbx">
|
||||
<title>dbx functions</title>
|
||||
<titleabbrev>dbx</titleabbrev>
|
||||
|
@ -38,7 +38,7 @@
|
|||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>bool</type><methodname>dbx_close</methodname>
|
||||
<methodparam><type>dbx_link_object</type><parameter>link_identifier</parameter></methodparam>
|
||||
<methodparam><type>object</type><parameter>link_identifier</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Returns &true; on success,
|
||||
|
@ -49,8 +49,9 @@
|
|||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$link = dbx_connect ("mysql", "localhost", "db", "username", "password")
|
||||
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
|
||||
or die ("Could not connect");
|
||||
|
||||
print("Connected successfully");
|
||||
dbx_close($link);
|
||||
?>
|
||||
|
@ -76,80 +77,107 @@ dbx_close($link);
|
|||
<refsect1>
|
||||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>dbx_link_object</type><methodname>dbx_connect</methodname>
|
||||
<methodparam><type>string</type><parameter>module</parameter></methodparam>
|
||||
<type>object</type><methodname>dbx_connect</methodname>
|
||||
<methodparam><type>mixed</type><parameter>module</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>host</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>database</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>username</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>password</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>int</type><parameter>persistent</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Returns: a dbx_link_object on success, &false;
|
||||
on error. If a connection has been made but the database could not
|
||||
be selected, the connection is closed and &false;
|
||||
is returned. The 'persistent' parameter can be set to
|
||||
DBX_PERSISTENT so a persistent connection will be created.
|
||||
</para>
|
||||
<para>
|
||||
The <parameter>module</parameter> parameter can be either a string
|
||||
or a constant. The possible values are given below, but keep in
|
||||
mind that they only work if the module is actually loaded.
|
||||
</para>
|
||||
<simpara>
|
||||
<function>dbx_connect</function> returns an object on success, &false; on
|
||||
error. If a connection has been made but the database could not be
|
||||
selected, the connection is closed and &false; is returned.
|
||||
The <parameter>persistent</parameter> parameter can be set to
|
||||
<constant>DBX_PERSISTENT</constant>, if so, a persistent connection will be
|
||||
created.
|
||||
</simpara>
|
||||
<simpara>
|
||||
The <parameter>module</parameter> parameter can be either a string or a
|
||||
constant, though the latter form is preferred. The possible values are
|
||||
given below, but keep in mind that they only work if the module is
|
||||
actually loaded.
|
||||
</simpara>
|
||||
<para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
module DBX_MYSQL : "mysql"
|
||||
<constant>DBX_MYSQL</constant> or "mysql"
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
module DBX_ODBC : "odbc"
|
||||
<constant>DBX_ODBC</constant> or "odbc"
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
module DBX_PGSQL : "pgsql"
|
||||
<constant>DBX_PGSQL</constant> or "pgsql"
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
module DBX_MSSQL : "mssql"
|
||||
<constant>DBX_MSSQL</constant> or "mssql"
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
module DBX_FBSQL : "fbsql" (CVS only)
|
||||
<constant>DBX_FBSQL</constant> or "fbsql" (available from PHP 4.1.0)
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para>
|
||||
The dbx_link_object has three members, a 'handle', a 'module' and
|
||||
a 'database'. The 'database' member is the name of the currently
|
||||
selected database. The 'module' member is for internal use by dbx
|
||||
only, and is actually the module number mentioned above. The
|
||||
'handle' member is a valid handle for the connected database, and
|
||||
as such can be used in module-specific functions (if required),
|
||||
e.g.
|
||||
The <parameter>host</parameter>, <parameter>database</parameter>,
|
||||
<parameter>username</parameter> and <parameter>password</parameter>
|
||||
parameters are expected, but not always used depending on the connect
|
||||
functions for the abstracted module.
|
||||
</para>
|
||||
<para>
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
The returned <varname>object</varname> has three properties:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>database</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It is the name of the currently selected database.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>handle</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
It is a valid handle for the connected database, and as such it can be
|
||||
used in module-specific functions (if required).
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$link = dbx_connect ("mysql", "localhost", "db", "username", "password");
|
||||
$link = dbx_connect (DBX_MYSQL, "localhost", "db", "username", "password");
|
||||
mysql_close ($link->handle); // dbx_close($link) would be better here
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
<para>
|
||||
Host, database, username and password parameters are expected,
|
||||
but not always used, depending on the connect-functions for the
|
||||
abstracted module.
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>module</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It is used internally by dbx only, and is actually the module number
|
||||
mentioned above.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
<para>
|
||||
<example>
|
||||
|
@ -157,8 +185,9 @@ mysql_close ($link->handle); // dbx_close($link) would be better here
|
|||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$link = dbx_connect ("odbc", "", "db", "username", "password", DBX_PERSISTENT)
|
||||
$link = dbx_connect (DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
|
||||
or die ("Could not connect");
|
||||
|
||||
print ("Connected successfully");
|
||||
dbx_close ($link);
|
||||
?>
|
||||
|
@ -189,26 +218,26 @@ dbx_close ($link);
|
|||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>string</type><methodname>dbx_error</methodname>
|
||||
<methodparam><type>dbx_link_object</type><parameter>link_identifier</parameter></methodparam>
|
||||
<methodparam><type>object</type><parameter>link_identifier</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Returns a string containing the error-message from the last
|
||||
function call of the module (e.g. mysql-module). If there are
|
||||
multiple connections on the same module, just the last error is
|
||||
given. If there are connections on different modules, the latest
|
||||
error is returned for the specified module (specified by the link
|
||||
parameter, that is). Note that the ODBC-module doesn't support an
|
||||
error_reporting function at the moment.
|
||||
</para>
|
||||
<simpara>
|
||||
<function>dbx_error</function> returns a string containing the error
|
||||
message from the last function call of the abstracted module (e.g.
|
||||
mysql module). If there are multiple connections in the same module,
|
||||
just the last error is given. If there are connections on different
|
||||
modules, the latest error is returned for the module specified by the
|
||||
<parameter>link_identifier</parameter> parameter.
|
||||
</simpara>
|
||||
<example>
|
||||
<title><function>dbx_error</function> example</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
$link = dbx_connect ("mysql", "localhost", "db", "username", "password")
|
||||
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
|
||||
or die ("Could not connect");
|
||||
$result = dbx_query ($link, "select id from nonexistingtbl");
|
||||
if ($result==0) {
|
||||
|
||||
$result = dbx_query($link, "select id from non_existing_table");
|
||||
if ( $result == 0 ) {
|
||||
echo dbx_error ($link);
|
||||
}
|
||||
dbx_close ($link);
|
||||
|
@ -221,7 +250,7 @@ dbx_close ($link);
|
|||
Always refer to the module-specific documentation as well.
|
||||
</para>
|
||||
<para>
|
||||
The error-message for Microsoft SQL Server is actually the result
|
||||
The error message for Microsoft SQL Server is actually the result
|
||||
of the <function>mssql_get_last_message</function> function.
|
||||
</para>
|
||||
</note>
|
||||
|
@ -236,135 +265,227 @@ dbx_close ($link);
|
|||
<refsect1>
|
||||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>dbx_result_object</type><methodname>dbx_query</methodname>
|
||||
<methodparam><type>dbx_link_object</type><parameter>link_identifier</parameter></methodparam>
|
||||
<type>object</type><methodname>dbx_query</methodname>
|
||||
<methodparam><type>object</type><parameter>link_identifier</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>sql_statement</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>long</type><parameter>flags</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
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 <parameter>flags</parameter> 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
|
||||
<parameter>flags</parameter>
|
||||
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 <parameter>flags</parameter>
|
||||
parameter isn't specified. Associated results are actual
|
||||
references to the indexed data, so if you modify
|
||||
<literal>data[0][0]</literal>, then
|
||||
<literal>data[0]['fieldnameforfirstcolumn']</literal> is
|
||||
modified as well.
|
||||
</para>
|
||||
<para>
|
||||
A dbx_result_object has five members (possibly four depending on
|
||||
<parameter>flags</parameter>), '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:
|
||||
</para>
|
||||
<para>
|
||||
<informalexample role="php">
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, "SELECT id FROM tbl");
|
||||
mysql_field_len ($result->handle, 0);
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
<para>
|
||||
The cols and rows members contain the number of columns (or
|
||||
fields) and rows (or records) respectively, e.g.
|
||||
</para>
|
||||
<para>
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, "SELECT id FROM tbl");
|
||||
echo "result size: " . $result->rows . " x " . $result->cols . "<br>\n";
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
<para>
|
||||
The info member is only returned if DBX_RESULT_INFO and/or
|
||||
DBX_RESULT_ASSOC are specified in the <parameter>flags</parameter> parameter.
|
||||
It is a 2d array, that has two named rows ("name" and "type") to retrieve
|
||||
column information, e.g.
|
||||
</para>
|
||||
<para>
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
$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";
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
<para>
|
||||
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
|
||||
<literal>$result->data[2]["fieldname"]</literal>.
|
||||
</para>
|
||||
<simpara>
|
||||
<function>dbx_query</function> returns an object or <literal>1</literal>
|
||||
on success, and <literal>0</literal> on failure. The result object is
|
||||
returned only if the query given in <parameter>sql_statement</parameter>
|
||||
produces a result set.
|
||||
</simpara>
|
||||
<example>
|
||||
<title><function>dbx_query</function> example</title>
|
||||
<title>How to handle the returned value</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?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";
|
||||
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
|
||||
or die("Could not connect");
|
||||
|
||||
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');
|
||||
|
||||
if ( is_object($result) ) {
|
||||
// ... do some stuff here, see detailed examples below ...
|
||||
// first, print out field names and types
|
||||
// then, draw a table filled with the returned field values
|
||||
}
|
||||
else if ( $result == 1 ) {
|
||||
echo("Query executed successfully, but no result set returned");
|
||||
}
|
||||
else {
|
||||
exit("Query failed");
|
||||
}
|
||||
|
||||
dbx_close($link);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
The <parameter>flags</parameter> parameter is used to control the amount of
|
||||
information that is returned. It may be any combination of the following
|
||||
constants with the bitwise OR operator (|):
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<constant>DBX_RESULT_INDEX</constant>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It is <emphasis>always</emphasis> set, that is, the returned object
|
||||
has a <property>data</property> property which is a 2 dimensional
|
||||
array indexed numerically. For example, in the expression
|
||||
<literal>data[2][3]</literal> <literal>2</literal> stands for the row
|
||||
(or record) number and <literal>3</literal> stands for the column
|
||||
(or field) number. The first row and column are indexed at 0.
|
||||
</simpara>
|
||||
<simpara>
|
||||
If <constant>DBX_RESULT_ASSOC</constant> is also specified, the
|
||||
returning object contains the information related to
|
||||
<constant>DBX_RESULT_INFO</constant> too, even if it was not specified.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<constant>DBX_RESULT_INFO</constant>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It provides info about columns, such as field names and field types.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<constant>DBX_RESULT_ASSOC</constant>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It effects that the field values can be accessed with the respective
|
||||
column names used as keys to the returned object's
|
||||
<property>data</property> property.
|
||||
</simpara>
|
||||
<simpara>
|
||||
Associated results are actually references to the numerically indexed
|
||||
data, so modifying <literal>data[0][0]</literal> causes that
|
||||
<literal>data[0]['field_name_for_first_column']</literal> is modified
|
||||
as well.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
Note that <constant>DBX_RESULT_INDEX</constant> is always used, regardless
|
||||
of the actual value of <parameter>flags</parameter> parameter. This means
|
||||
that the following combinations is effective only:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_RESULT_INDEX</constant>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_RESULT_INDEX</constant> |
|
||||
<constant>DBX_RESULT_INFO</constant>
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_RESULT_INDEX</constant> |
|
||||
<constant>DBX_RESULT_INFO</constant> |
|
||||
<constant>DBX_RESULT_ASSOC</constant> - this is the default, if
|
||||
<parameter>flags</parameter> is not specified.
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
<para>
|
||||
The returing <varname>object</varname> has four or five
|
||||
properties depending on <parameter>flags</parameter>:
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>handle</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
It is a valid handle for the connected database, and as such it can be
|
||||
used in module specific functions (if required).
|
||||
<informalexample role="php">
|
||||
<programlisting>
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, "SELECT id FROM table");
|
||||
mysql_field_len ($result->handle, 0);
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>cols</property> and <property>rows</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
These contain the number of columns (or fields) and rows (or records)
|
||||
respectively.
|
||||
<informalexample>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, 'SELECT id FROM table');
|
||||
echo $result->rows; // number of records
|
||||
echo $result->cols; // number of fields
|
||||
]]>
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>info</property> (optional)
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
It is returned only if either <constant>DBX_RESULT_INFO</constant> or
|
||||
<constant>DBX_RESULT_ASSOC</constant> is specified in the
|
||||
<parameter>flags</parameter> parameter. It is a 2 dimensional array,
|
||||
that has two named rows (<literal>name</literal> and
|
||||
<literal>type</literal>) to retrieve column information.
|
||||
</simpara>
|
||||
<example>
|
||||
<title>lists each field's name and type</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, 'SELECT id FROM table', DBX_RESULT_INDEX | DBX_RESULT_INFO);
|
||||
|
||||
for ($i = 0; $i < $result->cols; $i++ ) {
|
||||
echo $result->info['name'][$i] . "\n";
|
||||
echo $result->info['type'][$i] . "\n";
|
||||
}
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<property>data</property>
|
||||
</term>
|
||||
<listitem>
|
||||
<simpara>
|
||||
This property contains the actual resulting data, possibly associated
|
||||
with column names as well depending on <parameter>flags</parameter>.
|
||||
If <constant>DBX_RESULT_ASSOC</constant> is set, it is possible to use
|
||||
<literal>$result->data[2]["field_name"]</literal>.
|
||||
</simpara>
|
||||
<example>
|
||||
<title>outputs the content of data property into HTML table</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
$result = dbx_query ($link, 'SELECT id, parentid, description FROM table');
|
||||
|
||||
echo "<table>\n";
|
||||
foreach ( $result->data as $row ) {
|
||||
echo "<tr>\n";
|
||||
foreach ( $row as $field ) {
|
||||
echo "<td>$field</td>";
|
||||
}
|
||||
echo "</tr>\n";
|
||||
}
|
||||
echo "</table>\n";
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
Always refer to the module-specific documentation as well.
|
||||
|
@ -387,13 +508,20 @@ dbx_close($link);
|
|||
<title>Description</title>
|
||||
<methodsynopsis>
|
||||
<type>bool</type><methodname>dbx_sort</methodname>
|
||||
<methodparam><type>dbx_result_object</type><parameter>result</parameter></methodparam>
|
||||
<methodparam><type>object</type><parameter>result</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>user_compare_function</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Returns &true; on success,
|
||||
&false; on error.
|
||||
</para>
|
||||
<note>
|
||||
<simpara>
|
||||
It is always better to use <literal>ORDER BY</literal>
|
||||
<literal>SQL</literal> clause instead of <function>dbx_sort</function>,
|
||||
if possible.
|
||||
</simpara>
|
||||
</note>
|
||||
<example>
|
||||
<title><function>dbx_sort</function> example</title>
|
||||
<programlisting role="php">
|
||||
|
@ -401,16 +529,21 @@ dbx_close($link);
|
|||
<?php
|
||||
function user_re_order ($a, $b) {
|
||||
$rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
|
||||
if (!$rv) $rv = dbx_compare ($a, $b, "id");
|
||||
if ( !$rv ) {
|
||||
$rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
|
||||
$link = dbx_connect ("odbc", "", "db", "username", "password")
|
||||
$link = dbx_connect ("odbc", "", "db", "username", "password")
|
||||
or die ("Could not connect");
|
||||
|
||||
$result = dbx_query ($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
|
||||
echo "resulting data is now ordered by id<br>";
|
||||
// data in $result is now ordered by id
|
||||
|
||||
dbx_sort ($result, "user_re_order");
|
||||
echo "resulting data is now ordered by parentid (descending), then by id<br>";
|
||||
// data in $result is now ordered by parentid (descending), then by id
|
||||
|
||||
dbx_close ($link);
|
||||
?>
|
||||
]]>
|
||||
|
@ -433,24 +566,57 @@ dbx_close ($link);
|
|||
<type>int</type><methodname>dbx_compare</methodname>
|
||||
<methodparam><type>array</type><parameter>row_a</parameter></methodparam>
|
||||
<methodparam><type>array</type><parameter>row_b</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>columnname_or_index</parameter></methodparam>
|
||||
<methodparam><type>string</type><parameter>column_key</parameter></methodparam>
|
||||
<methodparam choice="opt"><type>int</type><parameter>flags</parameter></methodparam>
|
||||
</methodsynopsis>
|
||||
<para>
|
||||
Returns 0 if row_a[$columnname_or_index] is equal to
|
||||
row_b[$columnname_or_index], 1 if it is greater and -1 if it is
|
||||
smaller (or vice versa if the DBX_CMP_DESC flag is set).
|
||||
<function>dbx_compare</function> returns <literal>0</literal> if the
|
||||
<literal>row_a[$column_key]</literal> is equal to
|
||||
<literal>row_b[$column_key]</literal>, and <literal>1</literal> or
|
||||
<literal>-1</literal> if the former is greater or is smaller than
|
||||
the latter one, respectively, or vice versa if the
|
||||
<parameter>flag</parameter> is set to <constant>DBX_CMP_DESC</constant>.
|
||||
<function>dbx_compare</function> is a helper function for
|
||||
<function>dbx_sort</function> to ease the make and use of the custom
|
||||
sorting function.
|
||||
</para>
|
||||
<para>
|
||||
The <parameter>flags</parameter> can be set to specify comparison
|
||||
direction (whether sorting is ascending or descending) and
|
||||
comparison type (force string or numeric compare by converting the
|
||||
data). The constants for direction are DBX_CMP_ASC and DBX_CMP_DESC.
|
||||
The constants for comparison type are DBX_CMP_NATIVE (no
|
||||
conversion), DBX_CMP_TEXT and DBX_CMP_NUMBER. These constants can
|
||||
be OR-ed together. The default value for the
|
||||
<parameter>flags</parameter> parameter is DBX_CMP_ASC |
|
||||
DBX_CMP_NATIVE.
|
||||
direction:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_CMP_ASC</constant> - ascending order
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_CMP_DESC</constant> - descending order
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
and the preferred comparison type:
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_CMP_NATIVE</constant> - no type conversion
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_CMP_TEXT</constant> - compare items as strings
|
||||
</simpara>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<simpara>
|
||||
<constant>DBX_CMP_NUMBER</constant> - compare items numerically
|
||||
</simpara>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
One of the direction and one of the type constant can be combined with
|
||||
bitwise OR operator (|). The default value for the
|
||||
<parameter>flags</parameter> parameter is <constant>DBX_CMP_ASC</constant>
|
||||
| <constant>DBX_CMP_NATIVE</constant>.
|
||||
</para>
|
||||
<example>
|
||||
<title><function>dbx_compare</function> example</title>
|
||||
|
@ -459,18 +625,21 @@ dbx_close ($link);
|
|||
<?php
|
||||
function user_re_order ($a, $b) {
|
||||
$rv = dbx_compare ($a, $b, "parentid", DBX_CMP_DESC);
|
||||
if (!$rv) {
|
||||
$rv = dbx_compare ($a, $b, "id");
|
||||
return $rv;
|
||||
if ( !$rv ) {
|
||||
$rv = dbx_compare ($a, $b, "id", DBX_CMP_NUMBER);
|
||||
}
|
||||
return $rv;
|
||||
}
|
||||
|
||||
$link = dbx_connect ("odbc", "", "db", "username", "password")
|
||||
$link = dbx_connect ("odbc", "", "db", "username", "password")
|
||||
or die ("Could not connect");
|
||||
$result = dbx_query ($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
|
||||
echo "resulting data is now ordered by id<br>";
|
||||
|
||||
$result = dbx_query ($link, "SELECT id, parentid, description FROM table ORDER BY id");
|
||||
// data in $result is now ordered by id
|
||||
|
||||
dbx_sort ($result, "user_re_order");
|
||||
echo "resulting data is now ordered by parentid (descending), then by id<br>";
|
||||
// date in $result is now ordered by parentid (descending), then by id
|
||||
|
||||
dbx_close ($link);
|
||||
?>
|
||||
]]>
|
||||
|
@ -503,5 +672,4 @@ End:
|
|||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
||||
-->
|
Loading…
Reference in a new issue