2012-02-09 66 views
1

有几个数据库可以连接到PDO,但它们都需要不同的连接方法。如何在不知道数据库可用的情况下使用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从哪里使用哪个数据库?

这个检查只会执行一次,所以它不是非常重要,它是有效的,但我希望它有点轻。

任何例子都将非常感谢,因为我是一个新手,并会享受起点。

+0

看起来很像这个问题:http://stackoverflow.com/questions/5766218/how-can-i-get-a-list-of-mysql-databases-in-php-using-pdo也许答案可以进一步帮助你。 – Oldskool 2012-02-09 22:15:48

+2

这个问题根本就没有关系。这是关于列出连接到MySQL后可用的“数据库”。 – Charles 2012-02-09 22:17:43

回答

2

您可以使用PDO::getAvailableDrivers()来获取系统内容的列表。

您仍然需要自己构建连接字符串(因为所有驱动程序都可以使用非常不同的参数),但这至少会告诉您可以在系统上使用什么。

相关问题