/** * @param Database $db * @param Table $tbl * @return Table */ public function getTableFields(Database $db, Table $tbl) { $query = sprintf('SHOW COLUMNS IN `%s` FROM `%s`', $tbl->getName(), $db->getName()); $stmt = $this->conn->query($query); while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { $field = new Field('', $row['Field']); $field->setType($row['Type'])->setNullable(strtoupper($row['Null']) == 'YES')->setDefaultValue($row['Default']); if ($row['Extra']) { if ($row['Extra'] == 'auto_increment') { $field->setAutoIncrement(true); } else { //things like on update? $field->setExtraString($row['Extra']); } } $tbl->addField($field, true); } return $tbl; }