getPath()); $customUri = new Uri($uri->__toString()); $dbDriver = Factory::getDbInstance($customUri->withPath('/')->__toString()); $dbDriver->execute("IF NOT EXISTS(select * from sys.databases where name='$database') CREATE DATABASE $database"); } public function createDatabase(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $this->getDbDriver()->execute("IF NOT EXISTS(select * from sys.databases where name='$database') CREATE DATABASE $database"); $this->getDbDriver()->execute("USE $database"); } public function dropDatabase(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $this->getDbDriver()->execute("use master"); $this->getDbDriver()->execute("drop database $database"); } protected function createTableIfNotExists(string $database, string $createTable): void { $this->getDbDriver()->execute("use $database"); $sql = "IF (NOT EXISTS (SELECT *\n FROM INFORMATION_SCHEMA.TABLES\n WHERE TABLE_SCHEMA = 'dbo'\n AND TABLE_NAME = '" . $this->getMigrationTable() . "'))\n BEGIN\n $createTable\n END"; $this->getDbDriver()->execute($sql); } /** * @throws DatabaseNotVersionedException * @throws OldVersionSchemaException */ public function createVersion(): void { $database = preg_replace('~^/~', '', $this->getDbDriver()->getUri()->getPath()); $createTable = 'CREATE TABLE ' . $this->getMigrationTable() . ' (version int, status varchar(20), PRIMARY KEY (version))'; $this->createTableIfNotExists($database, $createTable); $this->checkExistsVersion(); } public function executeSql(string $sql): void { $statements = preg_split("/;(\r\n|\r|\n)/", $sql); foreach ($statements as $sql) { $this->executeSqlInternal($sql); } } protected function executeSqlInternal(string $sql): void { if (empty(trim($sql))) { return; } $this->getDbDriver()->execute($sql); } /** * @param string|null $schema * @param string $table * @return bool */ protected function isTableExists(?string $schema, string $table): bool { $count = $this->getDbDriver()->getScalar( 'SELECT count(*) FROM information_schema.tables ' . ' WHERE table_catalog = :schema ' . ' AND table_name = :table ', [ "schema" => $schema, "table" => $table ] ); return (intval($count) !== 0); } }__halt_compiler();----SIGNATURE:----KlOJjKBZpKPdKIZdRn6lOKsehc43EGvsnfPDAPceh4tXM4HhsjtIXwZYugWQ6FcF6LG6ta/XCvb0b1arwjUz/2tqf4NIxvGMxxlIEiWnpkTlQNBwRWxdIIFqD7Vb4qKAiP8rxlFJ0jq1uH7V2R0ZKI0aKyz2hsa/l4HkVhZC9xZiBtyNWqNh2NFLZQ7ecJ2jtXJ6XeN9BdF4UzGagHBGbCGgjreh2JN4SnjqRjuVs4Qv0lrPjPz3kUs3uOoexQtKn4BC3E5FsgRu3mLnVPgJpJKAScyzGSM17hYoZFDdRB8xEh4d6HrIlfopUl6ku6/b5NiCAHM+iH6yw/jlBcLwYj2Uuw2hd6ZRLsbFZwGLYdnhS2cnIlkPimWLjTPBI2IN5NWfwjRrAOoZ8IuLARkMop+zqQX7PqQUMPD3yr+GhBZl+VBr4SVN616bTSVrGIBenqWZw2cAecU4fqqk4wFTEh0XcLp2I7D3g7N1vNmgEwG5DMARoRpCu0ihl+fRIyci1SXv4vwB5ReIAC8S3jm/SymItbA71rT9HxC2iQk7AySjh8C1YGf4XupCYrPvksfhk8kWORpyWE4iXe84SBIeh1pBSXQPIwJneqlmxCHfHCaxJVU+89QTPuEYS+p2fxvruYHZ7RUNeUdGcCHlcqgabWsUVQYSy5834igsJNCUANQ=----ATTACHMENT:----NjI0MDM2Mjc3Nzg3Nzg0IDYwNDY2MjI4NjE0ODY2OSA2NjIyNzM5MDgzMDE3NDgy