Метаданные базы данных  

Таблица метаданных  

Эти функции позволяют получать информацию о таблице.

List the Tables in Your Database  

$this->db->list_tables();

Возвращает массив, содержащий имена всех таблиц в базе данных к которой вы подключены в настоящее время. Пример:

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

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

Определить, существует ли таблица  

$this->db->table_exists();

Иногда полезно знать, существует ли конкретная таблица перед выполнением операции над ней. Возвращает булев TRUE/FALSE. Пример использования:

if ($this->db->table_exists('table_name'))
{
        // код...
}

Примечание

Замените table_name названием таблицы для проверки на существование.

Поля метаданных  

Список полей в таблице  

$this->db->list_fields()

Возвращает массив, содержащий имена полей. Этот запрос может быть вызван двумя способами:

1. Вы можете указать имя таблицы и вызвать ее из $this->db-> object:

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

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

2. Вы можете собрать имена полей, связанных с любым запросом путем вызова функции из результатов запроса объекта:

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

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

Определить, существует ли поле в таблице  

$this->db->field_exists()

Иногда полезно знать, существует ли конкретное поле перед выполнением действия над ним. Возвращает TRUE/FALSE. Пример использования:

if ($this->db->field_exists('field_name', 'table_name'))
{
        // код...
}

Примечание

Замените field_name названием поля для проверки на существование и table_name названием таблицы в которой проверяется поле.

Извлечение полей метаданных  

$this->db->field_data()

Возвращает массив объектов, содержащих информацию о поле.

Иногда полезно собрать имена полей или другие метаданные, такие как тип столбца, максимальная длина и т. д.

Примечание

Не все базы данных предоставляют метаданные.

Пример использования:

$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;
}

Если вы уже запустили запрос, вы можете использовать объекты, полученные в результате вместо того, чтобы подставлять имя таблицы:

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

Доступны следующие данные из этой функции (если поддерживается вашей базой):

  • name - имя столбца
  • max_length - максимальная длина столбца
  • primary_key - 1 если столбец является первичным ключом
  • type - тип столбца