private function connect_to_database($dbms, array $db_connection_data, $database) { DBFactory::init_factory($dbms); $connection = DBFactory::new_db_connection(); DBFactory::set_db_connection($connection); try { $connection->connect($db_connection_data); } catch (UnexistingDatabaseException $exception) { PersistenceContext::get_dbms_utils()->create_database($database); PersistenceContext::close_db_connection(); $connection = DBFactory::new_db_connection(); $connection->connect($db_connection_data); DBFactory::set_db_connection($connection); } }