PHP Conference China 2020

odbc_statistics

(PHP 4, PHP 5, PHP 7)

odbc_statisticsRetrieve statistics about a table

Description

odbc_statistics ( resource $connection_id , string $catalog , string $schema , string $table_name , int $unique , int $accuracy ) : resource

Get statistics about a table and its indexes.

Parameters

connection_id

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

catalog

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

schema

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

table_name

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 identifier 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.

Examples

Example #1 List Statistics of a Table

<?php
$conn 
odbc_connect($dsn$user$pass);
$statistics odbc_statistics($conn'TutorialDB''dbo''TEST'SQL_INDEX_UNIQUESQL_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 add a note

User Contributed Notes 1 note

up
2
eion at bigfoot dot com
9 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