我正在尝试检测安装了哪些MDB2驱动程序。这样我就可以使用用户安装的任何东西。我尝试使用class_exists("MDB2_Driver_$driver",FALSE)或(@include_once("MDB2/Driver/$driver.php")),它不起作用。(第一个为所有驱动程序返回FALSE,第二个为现有驱动程序崩溃)
你有什么建议吗?看起来MDB2没有包含任何方法来实现这一点。
发布于 2013-03-30 10:02:19
如果这些都是通过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上发布的一段代码。
https://stackoverflow.com/questions/14772226
复制相似问题