Return value
array - an associative array of the table's information
or a DB_Error object on failure
The array's contents depends on the $mode
parameter.
The names of tables and columns will be lowercased if the
DB_PORTABILITY_LOWERCASE
portability
mode is enabled.
The flags element contains a space
separated list of extra information about the column.
If the DBMS is able to report a column's default value,
the value is passed through rawurlencode()
to avoid problems caused by potential spaces in the value.
Most DBMS's only provide the table and
flags elements if $result
is a table name. Only fbsql and mysql provide full
information from queries.
The type element contains the type returned
by the DBMS. It varies from DBMS to DBMS.
tableInfo Modes
This section describes the format of the returned array and how
it varies depending on which $mode was used
when the function was called.
The sample output below is based on this query:
SELECT tblFoo.fldID, tblFoo.fldPhone, tblBar.fldId
FROM tblFoo
JOIN tblBar ON tblFoo.fldId = tblBar.fldId; |
- NULL or 0
[0] => Array (
[table] => tblFoo
[name] => fldId
[type] => int
[len] => 11
[flags] => primary_key not_null
)
[1] => Array (
[table] => tblFoo
[name] => fldPhone
[type] => string
[len] => 20
[flags] =>
)
[2] => Array (
[table] => tblBar
[name] => fldId
[type] => int
[len] => 11
[flags] => primary_key not_null
) |
- DB_TABLEINFO_ORDER
In addition to the information found in the default output,
a notation of the number of columns is provided by the
num_fields element while the
order
element provides an array with the column names as the keys and
their location index number (corresponding to the keys in the
default output) as the values.
If a result set has identical field names, the last one is
used.
[num_fields] => 3
[order] => Array (
[fldId] => 2
[fldTrans] => 1
) |
- DB_TABLEINFO_ORDERTABLE
Similar to DB_TABLEINFO_ORDER but adds more
dimensions to the array in which the table names are keys and
the field names are sub-keys. This is helpful for queries that
join tables which have identical field names.
[num_fields] => 3
[ordertable] => Array (
[tblFoo] => Array (
[fldId] => 0
[fldPhone] => 1
)
[tblBar] => Array (
[fldId] => 2
)
) |
- DB_TABLEINFO_FULL
Contains the information from both
DB_TABLEINFO_ORDER and
DB_TABLEINFO_ORDERTABLE
The tableInfo mode constants are bitwised, so they can be
combined using |.
Note
This function can not be called
statically.
tableInfo() is not portable because not all drivers
have this method, many DBMS's are unable to determine
table names from query results and the metadata returned
by each database system varies dramatically.