Метаданные базы данных
Таблица метаданных
Эти функции позволяют получать информацию о таблице.
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 - тип столбца