PHP Conference Nagoya 2025

odbc_statistics

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_statisticsRetrieve statistics about a table

Description

odbc_statistics(
    Odbc\Connection $odbc,
    ?string $catalog,
    string $schema,
    string $table,
    int $unique,
    int $accuracy
): Odbc\Result|false

Get statistics about a table and its indexes.

Parameters

odbc

The ODBC connection object, see odbc_connect() for details.

catalog

The catalog ('qualifier' in ODBC 2 parlance).

schema

The schema ('owner' in ODBC 2 parlance).

table

The table name.

unique

The type of the index. One of SQL_INDEX_UNIQUE or SQL_INDEX_ALL.

accuracy

One of SQL_ENSURE or SQL_QUICK. The latter requests that the driver retrieve the CARDINALITY and PAGES only if they are readily available from the server.

Return Values

Returns an ODBC result object or false on failure.

The result set has the following columns:

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
Drivers can report additional columns.

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and ORDINAL_POSITION.

Changelog

Version Description
8.4.0 odbc expects an Odbc\Connection instance now; previously, a resource was expected.
8.4.0 This function returns an Odbc\Result instance now; previously, a resource was returned.

Examples

Example #1 List Statistics of a Table

<?php
$conn
= odbc_connect($dsn, $user, $pass);
$statistics = odbc_statistics($conn, 'TutorialDB', 'dbo', 'TEST', SQL_INDEX_UNIQUE, SQL_QUICK);
while ((
$row = odbc_fetch_array($statistics))) {
print_r($row);
break;
// further rows omitted for brevity
}
?>

The above example will output something similar to:

Array
(
    [TABLE_CAT] => TutorialDB
    [TABLE_SCHEM] => dbo
    [TABLE_NAME] => TEST
    [NON_UNIQUE] =>
    [INDEX_QUALIFIER] =>
    [INDEX_NAME] =>
    [TYPE] => 0
    [ORDINAL_POSITION] =>
    [COLUMN_NAME] =>
    [ASC_OR_DESC] =>
    [CARDINALITY] => 15
    [PAGES] => 3
    [FILTER_CONDITION] =>
)

See Also

  • odbc_tables() - Get the list of table names stored in a specific data source

add a note

User Contributed Notes 1 note

up
2
eion at bigfoot dot com
13 years ago
A couple of the function parameters are undefined:

unique - determines whether you want to return just unique indexes or all indexes. Use SQL_INDEX_UNIQUE or SQL_INDEX_ALL for this parameter

accuracy - whether you wan to return everything there is to know about the table or just what information is readily available. Use SQL_ENSURE or SQL_QUICK for this parameter

For a bit more info about this function see the ODBC function SQLStatistics() at http://msdn.microsoft.com/en-us/library/ms711022(v=vs.85).aspx
To Top