Om du av någon konstig anledning behöver göra detta, använd inte dbname
parameter i dns. Använd istället din databasdrivrutin för att välja den åt dig:
$dbh->query('use "newdatabase"'); // for mysql.
På så sätt har du möjlighet att omge databasnamnet med "
, så att du kan döpa den till oavsett drivrutin tillåter . För MySQL för detta specifika scenario är det "
karaktär, men det betyder inte att det är annorlunda för PostgreSQL eller Firebase.
Men den här metoden är inte skottsäker, den tillåter bara PDO-biblioteket att analysera DSN som vanligt som jag inte förväntar SUB-biblioteket för att hantera denna ovanliga situation eftersom dess enda syfte är att interagera med så många förare som möjligt.
Förarspecifika tillåtelser bör inte delta i PDO, så du bör verkligen fråga föraren om detta, på så sätt kan du också kontrollera om frågan inte kan köras.