【问题标题】:How to connect to a DB using PDO without knowing what DB is available如何在不知道可用数据库的情况下使用 PDO 连接数据库
【发布时间】:2012-02-10 06:19:33
【问题描述】:

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 从那里使用哪个数据库?

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

任何示例都将不胜感激,因为我是新手,并且会喜欢一个起点。

【问题讨论】:

  • 看起来很像这个问题:stackoverflow.com/questions/5766218/…也许那里的答案可以帮助你进一步。
  • 这个问题根本不相关。这是关于列出连接到 MySQL 后可用的“数据库”。

标签: php pdo


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    相关资源
    最近更新 更多