Я нахожусь в ситуации, когда мне нужно подключиться ко многим базам данных. Изменяется только имя_базы_данных, но баз данных так много, что мне нужно подключаться к ним динамически. Я попытался сделать это следующим образом:
$dataBaseToCreate = "Test";
//Here is some code which creates database "TEST"
...
$filename = __DIR__.'/../SQL/test.sql';
$em = $this->createManager($databaseToCreate);
$sql = file_get_contents($filename);
$query = $em->getConnection()->prepare($sql);
$query->execute();
$em->flush();
public function createManager($dbname)
{
$isDevMode = false;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
// or if you prefer yaml or XML
//$config = Setup::createXMLMetadataConfiguration(array(__DIR__."/config/xml"), $isDevMode);
//$config = Setup::createYAMLMetadataConfiguration(array(__DIR__."/config/yaml"), $isDevMode);
$conn = [
'driver' => 'pdo_mysql',
'username' => 'foo',
'password' => 'foo',
'dbname' => $dbname
];
// obtaining the entity manager
return EntityManager::create($conn, $config);
}
Bu, в результате: «Произошло исключение в драйвере: SQLSTATE [HY000] [2002] Нет такого файла или каталога». строка:
$query = $em->getConnection()->prepare($sql);
Этот код основан на данном решении: { ссылка }
что я сделал не так? $ sql содержит все содержимое файла SQL.