Database Metadata
*****************


Table MetaData
==============

These functions let you fetch table information.


List the Tables in Your Database
--------------------------------

**$this->db->list_tables();**

Returns an array containing the names of all the tables in the
database you are currently connected to. Example:

   $tables = $this->db->list_tables();

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


Determine If a Table Exists
---------------------------

**$this->db->table_exists();**

Sometimes it’s helpful to know whether a particular table exists
before running an operation on it. Returns a boolean TRUE/FALSE. Usage
example:

   if ($this->db->table_exists('table_name'))
   {
           // some code...
   }

Note:

  Replace *table_name* with the name of the table you are looking for.


Field MetaData
==============


List the Fields in a Table
--------------------------

**$this->db->list_fields()**

Returns an array containing the field names. This query can be called
two ways:

1. You can supply the table name and call it from the $this->db->
object:

   $fields = $this->db->list_fields('table_name');

   foreach ($fields as $field)
   {
           echo $field;
   }

2. You can gather the field names associated with any query you run by
calling the function from your query result object:

   $query = $this->db->query('SELECT * FROM some_table');

   foreach ($query->list_fields() as $field)
   {
           echo $field;
   }


Determine If a Field is Present in a Table
------------------------------------------

**$this->db->field_exists()**

Sometimes it’s helpful to know whether a particular field exists
before performing an action. Returns a boolean TRUE/FALSE. Usage
example:

   if ($this->db->field_exists('field_name', 'table_name'))
   {
           // some code...
   }

Note:

  Replace *field_name* with the name of the column you are looking
  for, and replace *table_name* with the name of the table you are
  looking for.


Retrieve Field Metadata
-----------------------

**$this->db->field_data()**

Returns an array of objects containing field information.

Sometimes it’s helpful to gather the field names or other metadata,
like the column type, max length, etc.

Note:

  Not all databases provide meta-data.

Usage example:

   $fields = $this->db->field_data('table_name');

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

If you have run a query already you can use the result object instead
of supplying the table name:

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

The following data is available from this function if supported by
your database:

* name - column name

* max_length - maximum length of the column

* primary_key - 1 if the column is a primary key

* type - the type of the column
