Se por algum motivo estranho você precisar fazer isso, não use o
dbname
parâmetro no dns. Em vez disso, use seu driver de banco de dados para selecioná-lo para você:$dbh->query('use "newdatabase"'); // for mysql.
Dessa forma, você tem a opção de incluir o nome do banco de dados com
"
, para que você possa nomeá-lo qualquer que seja o driver permite . Para MySQL para este cenário específico é o "
mas isso não significa que seja diferente para PostgreSQL ou Firebase. Mas esse método não é à prova de balas, apenas permite que a biblioteca PDO analise o DSN normalmente, como eu não espero a biblioteca PDO para lidar com essa situação incomum, pois seu único objetivo é interagir com o maior número possível de drivers.
As permissões específicas do driver não devem fazer parte do PDO, então você deve realmente pedir isso ao driver, desta forma você também pode verificar se a consulta não é executada.