• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/mysql/database.php
  • Класс: CDatabaseMysql
  • Вызов: CDatabaseMysql::GetTableFields
public function GetTableFields($table)
{
	if (!isset($this->column_cache[$table]))
	{
		$this->column_cache[$table] = [];
		$this->DoConnect();

		$dbResult = $this->query("SELECT * FROM `" . $this->ForSql($table) . "` LIMIT 0");

		$resultFields = mysqli_fetch_fields($dbResult->result);
		foreach ($resultFields as $field)
		{
			switch ($field->type)
			{
				case MYSQLI_TYPE_TINY:
				case MYSQLI_TYPE_SHORT:
				case MYSQLI_TYPE_LONG:
				case MYSQLI_TYPE_INT24:
				case MYSQLI_TYPE_CHAR:
					$type = "int";
					break;

				case MYSQLI_TYPE_DECIMAL:
				case MYSQLI_TYPE_NEWDECIMAL:
				case MYSQLI_TYPE_FLOAT:
				case MYSQLI_TYPE_DOUBLE:
					$type = "real";
					break;

				case MYSQLI_TYPE_DATETIME:
				case MYSQLI_TYPE_TIMESTAMP:
					$type = "datetime";
					break;

				case MYSQLI_TYPE_DATE:
				case MYSQLI_TYPE_NEWDATE:
					$type = "date";
					break;

				default:
					$type = "string";
					break;
			}

			$this->column_cache[$table][$field->name] = [
				"NAME" => $field->name,
				"TYPE" => $type,
			];
		}
	}
	return $this->column_cache[$table];
}