データベースのメタデータ

テーブルのメタデータ

これらの機能ではテーブル情報を取得できます。

データベースのテーブル一覧

$db->listTables();

現在接続中のデータベースのすべてのテーブル名を持つ配列を返します。例:

$tables = $db->listTables();

foreach ($tables as $table)
{
        echo $table;
}

テーブルがあるかどうかの判定

$db->tableExists();

テーブル操作前にそのテーブルがあるかどうかを知るのは、時として有用です。真偽値 TRUE/FALSE を返します。使用例:

if ($db->tableExists('table_name'))
{
        // 何かしらのコード……
}

注釈

table_name は確認したいテーブル名に置き換えてください。

フィールドのメタデータ

テーブルのフィールド一覧

$db->getFieldNames()

フィールド名を持つ配列を返します。このクエリは2通りの方法で呼ばれます:

  1. $db-> オブジェクトから呼び出し、テーブル名を渡します:

    $fields = $db->getFieldNames('table_name');
    
    foreach ($fields as $field)
    {
            echo $field;
    }
    
  2. クエリ結果オブジェクトから呼び出し、実行したクエリに紐づくフィールド名を収集します:

    $query = $db->query('SELECT * FROM some_table');
    
    foreach ($query->getFieldNames() as $field)
    {
            echo $field;
    }
    

テーブルにフィールドがあるかどうかの判定

$db->fieldExists()

処理を実行する前にそのフィールドがあるかどうかを知るのは、時として有用です。真偽値 TRUE/FALSE を返します。使用例:

if ($db->fieldExists('field_name', 'table_name'))
{
        // 何かしらのコード……
}

注釈

field_name は確認したいフィールド名に、table_name は確認したいテーブル名にそれぞれ置き換えてください。

フィールドメタデータの取得

$db->getFieldData()

フィールド情報を持つオブジェクトの配列を返します。

フィールド名またはその他のメタデータ、カラム型や最大長などのようなものを収集することは、時として有用です。

注釈

すべてのデータベースがメタデータを提供しているわけではありません。

使用例:

$fields = $db->getFieldData('table_name');

foreach ($fields as $field)
{
        echo $field->name;
        echo $field->type;
        echo $field->max_length;
        echo $field->primary_key;
}

もしすでにクエリを実行してあれば、テーブル名を使う代わりに結果オブジェクトを使うことができます:

$query  = $db->query("YOUR QUERY");
$fields = $query->fieldData();

データベースがサポートしていれば、この機能では以下のデータが取得可能です:

  • name - カラム名
  • max_length - カラムの最大長
  • primary_key - 主キーのカラムなら 1
  • type - カラムの型

List the Indexes in a Table

$db->getIndexData()

Returns an array of objects containing index information.

使用例:

$keys = $db->getIndexData('table_name');

foreach ($keys as $key)
{
        echo $key->name;
        echo $key->type;
        echo $key->fields;  // array of field names
}

The key types may be unique to the database you are using. For instance, MySQL will return one of primary, fulltext, spatial, index or unique for each key associated with a table.