Back to Codeigniter

Database Metadata

user_guide_src/source/database/metadata.rst

3.1.132.8 KB
Original Source

################# 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