protected function extract($sql) { $schemaname = __CLASS__; $sql = rtrim($sql, ';'); $sql = "DROP DATABASE IF EXISTS {$schemaname};\nCREATE DATABASE {$schemaname};\nUSE {$schemaname};\n{$sql};"; $this->query($sql); $xml = mysql5::extract_schema($this->conn->get_dbhost(), $this->conn->get_dbport(), $schemaname, $this->conn->get_dbuser(), $this->conn->get_dbpass()); $dbdoc = simplexml_load_string($xml); foreach ($dbdoc->schema as $schema) { if (strcmp($schema['name'], $schemaname) == 0) { if (static::DEBUG) { echo "Got schema:\n" . $schema->asXML() . "\n"; } return $schema; } } echo $dbdoc->asXML() . "\n"; throw new exception("No schema named {$schemaname} was found!?"); }