使用PHP获取本地pc中的ODBC数据源列表
我正在寻找一种在本地PC上使用PHP获取ODBC数据源列表的方法。使用PHP获取本地pc中的ODBC数据源列表,php,mysql,odbc,Php,Mysql,Odbc,我正在寻找一种在本地PC上使用PHP获取ODBC数据源列表的方法。 如何实现这一点?PHP内置了对MySQL的连接支持,因此不需要ODBC连接。PHP不支持的任何数据库环境都需要ODBC。PHP内置了MySQL连接支持,因此不需要ODBC连接。PHP不支持的任何数据库环境都需要ODBC。如果我假设您在windows上运行 用户定义的ODBC连接存储在HKEY_CURRENT_User\Software\ODBC\ODBC.INI下 系统定义的ODBC连接存储在HKEY_LOCAL_MACHINE
如何实现这一点?PHP内置了对MySQL的连接支持,因此不需要ODBC连接。PHP不支持的任何数据库环境都需要ODBC。PHP内置了MySQL连接支持,因此不需要ODBC连接。PHP不支持的任何数据库环境都需要ODBC。如果我假设您在windows上运行 用户定义的ODBC连接存储在HKEY_CURRENT_User\Software\ODBC\ODBC.INI下 系统定义的ODBC连接存储在HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI下 ODBC驱动程序在HKEY\U LOCAL\U MACHINE\SOFTWARE\ODBC\ODBCINST.INI下定义 所以您需要一些php技巧来读取注册表,比如or 如果我假设您在unix/linux上,那么 用户定义的ODBC连接存储在/etc/ODBC.ini下 系统定义的ODBC连接存储在/home/username/.ODBC.ini ODBC驱动程序在/etc/odbcinst.ini下定义
所有这些文件都是类似INI的语法文本文件。如果我假设您在windows上运行
define('HKEY_LOCAL_MACHINE', 0x80000002);
$computer = '.';
$reg = new COM("winmgmts:{impersonationLevel=impersonate}!\\\\$computer\\root\\default:StdRegProv");
$key_path = 'SOFTWARE\ODBC\ODBCINST.INI';
$sub_keys = new VARIANT();
$reg->EnumKey(HKEY_LOCAL_MACHINE, $key_path, $sub_keys);
foreach($sub_keys as $sub_key){
echo $sub_key . "\n";
}
用户定义的ODBC连接存储在HKEY_CURRENT_User\Software\ODBC\ODBC.INI下
系统定义的ODBC连接存储在HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI下
ODBC驱动程序在HKEY\U LOCAL\U MACHINE\SOFTWARE\ODBC\ODBCINST.INI下定义
所以您需要一些php技巧来读取注册表,比如or
如果我假设您在unix/linux上,那么
用户定义的ODBC连接存储在/etc/ODBC.ini下
系统定义的ODBC连接存储在/home/username/.ODBC.ini
ODBC驱动程序在/etc/odbcinst.ini下定义
所有这些文件都是类似INI的语法文本文件。您的PHP在哪里运行,是在本地机器上还是在远程服务器上?Thanx Pekka for reply我正在使用local one Regards。这里有对PHP的ODBC支持,但我找不到在其中列出可用数据源的方法。您可能需要使用Windows程序/命令获取列表,然后运行
exec()
获取结果。但是可能会出现一些问题,请稍等。我以前读过这本支持手册,但我没有找到我需要的,无论如何,谢谢你。你的PHP在哪里运行,在本地机器上还是在远程服务器上?Thanx Pekka回答我在本地一级工作,这是对PHP的ODBC支持,但我看不到一种方法来列出可用的数据源。您可能需要使用Windows程序/命令获取列表,然后运行exec()
获取结果。但也许这里出现了一些问题,请稍等。我以前读过这本支持手册,但我没有找到我需要的,无论如何,非常感谢
define('HKEY_LOCAL_MACHINE', 0x80000002);
$computer = '.';
$reg = new COM("winmgmts:{impersonationLevel=impersonate}!\\\\$computer\\root\\default:StdRegProv");
$key_path = 'SOFTWARE\ODBC\ODBCINST.INI';
$sub_keys = new VARIANT();
$reg->EnumKey(HKEY_LOCAL_MACHINE, $key_path, $sub_keys);
foreach($sub_keys as $sub_key){
echo $sub_key . "\n";
}