Работа с БД: мета-данные полей

 

$this->db->list_fields()

Возвращает массив содержащий список имён полей таблицы. Возможны два способа вызова:

  1. Передать функции имя таблицы и вызвать функцию используя объект $this->db:
    1. $fields = $this->db->list_fields('table_name');
    2.  
    3. foreach ($fields as $field)
    4. {
    5. echo $field;
    6. }
  2. Выбрать имена полей таблицы используя объект результата запроса:
    1. $query = $this->db->query('SELECT * FROM some_table');
    2.  
    3. foreach ($query->list_fields() as $field)
    4. {
    5. echo $field;
    6. }

$this->db->field_exists()

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

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

Примечание: Замените field_name на имя поля наличие которого вы хотите определить, а table_name - на имя таблицы с которой работаете.

$this->db->field_data()

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


Примечание: не все СУБД предоставляют мета-данные.

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

  1. $fields = $this->db->field_data('table_name');
  2.  
  3. foreach ($fields as $field)
  4. {
  5. echo $field->name;
  6. echo $field->type;
  7. echo $field->max_length;
  8. echo $field->primary_key;
  9. }

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

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

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

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

Отправить комментарий

CAPTCHA
Этот вопрос предназначен для того, чтобы отсеять ботов
5 + 1 =
Решите простой математический пример и введите результат. К примеру, для вопроса 1+3 нужно ввести 4

Вход в систему

Последние комментарии