从现有连接获取当前的 PDO 驱动程序


Get current PDO driver from existing connection?

>我有一个类,它接受构造函数中现有的PDO连接:

class Foo {
    public function __construct('PDO $conn = NULL) {
        // ...
    }
    // ...
}

我的问题是:有没有办法确定现有PDO连接当前正在使用的驱动程序(最好是从此处找到的列表)? 我在 API 文档中没有看到任何内容。

出于好奇,我想知道正在使用哪个驱动程序,因为我类中的功能是特定于数据库的,因此我想要一种方法来验证传递给它的连接是否属于正确的类型。

您可以将

PDO::getAttribute()PDO::ATTR_DRIVER_NAME一起使用:

$name = $conn->getAttribute(PDO::ATTR_DRIVER_NAME);

使用 getAttribute()

http://www.php.net/manual/en/pdo.getattribute.php

$pdo_object->getAttribute(PDO::ATTR_DRIVER_NAME);