/** * @expectedException RuntimeException */ public function testTableParse() { $query = $this->readInputFile('table.sql'); $table = new Table($query); $this->assertEquals('foobar', $table->getName()); $this->assertTrue($table->hasField('foobar_id')); $this->assertTrue($table->hasPrimary()); $field = new Field('', 'foobar_id'); $table->addField($field); }
/** * @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; }