如何使用PDO连接到数据库而不知道可用的数据库

时间:2012-02-09 22:12:02

标签: php 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哪个数据库正在使用?

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

任何例子都会非常感激,因为我是新手,并且会享受起点。

1 个答案:

答案 0 :(得分:2)

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

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