Как подключиться к БД с помощью PDO, не зная, какая БД доступна - PullRequest
1 голос
/ 10 февраля 2012

Существует несколько баз данных, к которым PDO может подключиться, но все они требуют другого метода подключения.

$conn = new PDO("pgsql:host=localhost port=5432 dbname=pdo", "username", "password");
$conn = new PDO("informix:DSN=InformixDB", "username", "password");
$conn = new PDO("OCI:dbname=accounts;charset=UTF-8", "username", "password")w 
PDO("sqlite:/path/to/database.sdb");

Я создаю виджет, который не будет знать, использует ли пользователь sql, SQlite, oracleили базы данных informix, но я хочу, чтобы все было охвачено.

Вопрос: Есть ли способ проверить, какая база данных доступна с использованием PDO, или я должен просто использовать PHP, чтобы спросить, какие базы данных доступны, и сообщить PDO, какая из нихиспользуется оттуда?

Эта проверка будет выполнена только один раз, поэтому не очень важно, чтобы она была эффективной, но я надеюсь, что это несколько легкий вес.

любые примеры будут высоко оценены, так как яновичок и будет наслаждаться отправной точкой.

1 Ответ

2 голосов
/ 10 февраля 2012

Вы можете использовать PDO::getAvailableDrivers(), чтобы получить список того, что находится в системе.

Вам все равно нужно будет создать строку подключения самостоятельно (поскольку все драйверы могут использовать совершенно разные параметры), но это по крайней мере скажет вам, что вы можете использовать в системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...