Nếu vì một lý do nào đó, bạn cần thực hiện việc này, đừng sử dụng dbname
tham số trong dns. Thay vào đó, hãy sử dụng trình điều khiển cơ sở dữ liệu của bạn để chọn nó cho bạn:
$dbh->query('use "newdatabase"'); // for mysql.
Bằng cách này, bạn có tùy chọn để bao gồm tên cơ sở dữ liệu bằng "
, vì vậy bạn có thể đặt tên nó là bất kỳ trình điều khiển nào cho phép . Đối với MySQL cho trường hợp cụ thể này, nó là "
, nhưng điều đó không có nghĩa là nó khác với PostgreSQL hoặc Firebase.
Nhưng phương pháp này không chống đạn, nó chỉ cho phép thư viện PDO phân tích cú pháp DSN bình thường như tôi không mong đợi thư viện PDO để đối phó với tình huống bất thường này vì mục đích duy nhất của nó là tương tác với càng nhiều trình điều khiển càng tốt.
Các khoản phụ cấp dành riêng cho trình điều khiển không nên tham gia vào PDO, vì vậy bạn thực sự nên hỏi trình điều khiển về điều này, bằng cách này, bạn cũng có thể kiểm tra xem truy vấn có không thực thi được hay không.