Jeśli z jakiegoś dziwnego powodu musisz to zrobić, nie używaj dbname
parametr w dns. Zamiast tego użyj sterownika bazy danych, aby wybrać go za siebie:
$dbh->query('use "newdatabase"'); // for mysql.
W ten sposób możesz dołączyć nazwę bazy danych do "
, więc możesz go nazwać niezależnie od sterownika pozwala . W przypadku MySQL dla tego konkretnego scenariusza jest to "
znak, ale to nie znaczy, że jest inny dla PostgreSQL lub Firebase.
Ale ta metoda nie jest kuloodporna, pozwala jedynie bibliotece PDO na przeanalizowanie DSN w normalny sposób, nie oczekuję bibliotekę PDO, aby poradzić sobie z tą nietypową sytuacją, ponieważ jej jedynym celem jest interakcja z jak największą liczbą kierowców.
Uprawnienia specyficzne dla kierowcy nie powinny brać udziału w PDO, więc naprawdę powinieneś zapytać o to kierowcę, w ten sposób możesz również sprawdzić, czy zapytanie się nie powiedzie.