The PHP Online Conference 2021

odbc_statistics

(PHP 4, PHP 5, PHP 7)

odbc_statisticsテーブルに関する統計情報を取得する

説明

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

テーブルおよびインデックスに関する統計情報を取得します。

パラメータ

connection_id

ODBC 接続 ID。詳細は odbc_connect() を参照ください。

catalog

カタログ(ODBC 2 の用語では '修飾子')。

schema

スキーマ (ODBC 2 の用語では '所有者')。

table_name

テーブル名。

unique

インデックスのタイプ。 SQL_INDEX_UNIQUE, SQL_INDEX_ALL のいずれかを指定します。

accuracy

SQL_ENSURE, SQL_QUICK のいずれかを指定します。 後者は、サーバで利用できる場合に限り、CARDINALITYPAGES をドライバが取得するように要求します。

返り値

ODBC 結果 ID を返します。失敗した場合に FALSE を返します。

結果セットのカラムは次のようになります。

  • TABLE_CAT
  • TABLE_SCHEM
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • ORDINAL_POSITION
  • COLUMN_NAME
  • ASC_OR_DESC
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION
ドライバは追加のカラムを返すことが出来ます。

結果セットは NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME, ORDINAL_POSITION でソートされます。

例1 テーブルの統計情報を表示する

<?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
}
?>

上の例の出力は、 たとえば以下のようになります。

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] =>
)

参考

  • odbc_tables() - 指定したデータソースに保存されたテーブルの名前のリストを取得する

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