我正在尝试检测安装了哪些MDB2驱动程序。这样我可以使用用户安装的任何内容。 我尝试使用class_exists(“MDB2_Driver_ $ driver”,FALSE)或(@include_once(“MDB2 / Driver / $ driver.php”)),它不起作用。 (对于所有驱动程序,第一个返回FALSE,对于现有驱动程序,第二个返回崩溃)
关于如何做到这一点的任何想法?似乎MDB2没有包含任何方法。
答案 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的一小段代码。