如何在PHP中检测MDB2安装的驱动程序?

时间:2013-02-08 12:07:45

标签: php mdb2

我正在尝试检测安装了哪些MDB2驱动程序。这样我可以使用用户安装的任何内容。 我尝试使用class_exists(“MDB2_Driver_ $ driver”,FALSE)或(@include_once(“MDB2 / Driver / $ driver.php”)),它不起作用。 (对于所有驱动程序,第一个返回FALSE,对于现有驱动程序,第二个返回崩溃)

关于如何做到这一点的任何想法?似乎MDB2没有包含任何方法。

1 个答案:

答案 0 :(得分:0)

如果这些是通过PEAR安装的,则以下代码可以解决问题。它的工作原理是查询PEAR注册表以确定是否安装了驱动程序包。它还将显示每个驱动程序的版本。

require 'PEAR/Registry.php';
$reg = new PEAR_Registry;  
$drivers = array (       
    'MDB2_Driver_fbsql',
    'MDB2_Driver_ibase',
    'MDB2_Driver_mssql',
    'MDB2_Driver_mysql',   
    'MDB2_Driver_mysqli',  
    'MDB2_Driver_oci8',
    'MDB2_Driver_odbc',
    'MDB2_Driver_pgsql',
    'MDB2_Driver_querysim',
    'MDB2_Driver_sqlite',  
    'MDB2_Driver_sqlsrv',
);
foreach ($drivers as $driver) {
    $pkg = $reg->getPackage($driver);
    if (!is_null($pkg)) {  
        $version = $pkg->getVersion();
        echo "$driver v$version installed\n";
    }
}

这是基于我去年发布到https://gist.github.com/kenguest/1671361的一小段代码。