function getColumns(PDO $connection, ColumnFactory $columnFactory, $table) { $statement = $connection->prepare("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=?"); $statement->execute([$table]); $columns = $statement->fetchAll(); return array_map(function ($element) use($columnFactory) { return $columnFactory->buildColumn($element); }, $columns); }
/** * Return an array of Column objects with descriptions of each column * @param array $descriptions An array of columns on which DESCRIBE has been run with PDO::FETCH_OBJ * @param string $type The type of the database * @return array An array of column objects */ public function extract($descriptions, $type = 'mysql') { if (!in_array($type, array('mysql'))) { throw new \Exception('Invalid database type selected: ' . $type); } $columns = array(); foreach ($descriptions as $d) { $columns[] = ColumnFactory::getInstance($type, $d); } return $columns; }