/** * Get table columns * @param Table $table * @return TableColumn[] */ function dbGetTableColumns(Table $table) { $columns = $table->getColumns(); if (empty($columns)) { $input = new InputForSelect(); $input->className = TableColumn::class; $input->sql = <<<SQL SELECT * FROM information_schema.columns c WHERE c.table_schema = ? AND c.table_name = ? -- AND c.table_catalog = '[dbname]' ORDER BY c.ordinal_position; SQL; $input->parameters = [$table->getSchemaName(), $table->getName()]; $output = $this->dbSelect($input); $columns = $output->rows; $table->resetColumns(); foreach ($columns as $column) { $table->addColumn($column); } } return $columns; }