Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
    • Теги
    • API
    • DBAPI
    • System Variables
    • MMrules
  • Дополнения
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • DBAPI

getTableMetaData DBAPI

  • Разработчикам
  • DBAPI
  • getTableMetaData
Menu
  • connect
  • delete
  • disconnect
  • escape
  • getAffectedRows
  • getColumn
  • getColumnNames
  • getHTMLGrid
  • getInsertId
  • getRecordCount
  • getRow
  • getTableMetaData
  • getValue
  • getXML
  • insert
  • makeArray
  • prepareDate
  • query
  • select
  • update
  • getLastError
  • initDataTypes
1397

getTableMetaData DBAPI

array getTableMetaData($table)

$table - название таблицы

Эта функция возвращает многомерный массив с подробной информацией о структуре заданной таблицы MySQL.

Массив имеет вид TableField => Array( Info => Value ), где

  • TableField - название колонки,
  • Info - одно из 6 информационных параметров,
  • Value - значение конкретного параметра.


Информационные параметры:

Field - название поля таблицы
Type - тип поля и размер (например int(5), varchar(40) или text)
Null - может содержать значение NULL
Key - содержит ключ для значения типа "UNI" (UNIQUE) или "PRI" (PRIMARY)
Default - значение по умолчанию
Extra - дополнительная информация, такая как использование auto_increment


Пример

$table = 'my_table'; 
$data = $modx->db->getTableMetaData( $table ); 
$output = ''; 

// Цикл по всем колонкам 
foreach( $data as $field => $arr ) {	 

	// Название колонки 
	$output .= '' . $field . '
'; // Цикл по всем информационным параметрам foreach( $arr as $info => $value ) $output .= $info . ': ' . $value . '
'; // Вывод значения } } return $output;

Источник Функции

Файл: manager/includes/extenders/dbapi.mysql.class.inc.php

Строка: 365

function getTableMetaData($table) {
	$metadata = false;
	if (!empty ($table)) {
		$sql = "SHOW FIELDS FROM $table";
		if ($ds = $this->query($sql)) {
			while ($row = $this->getRow($ds)) {
				$fieldName = $row['Field'];
				$metadata[$fieldName] = $row;
			}
		}
	}
	return $metadata;
}