Я ищу способ получить список источников данных ODBC на локальном ПК с помощью PHP. Как я могу это достичь?
Если я предполагаю, что вы работаете в окнах
Пользовательские соединения ODBC хранятся в HKEY_CURRENT_USER \ Software \ ODBC \ ODBC.INI
Определенные системой соединения ODBC хранятся в HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI
Драйверы ODBC определены в разделе HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI
Итак, вам нужен трюк с php для чтения из реестра, как этот или этот
Если я предполагаю, что вы на unix / linux, тогда
Пользовательские соединения ODBC хранятся в каталоге /etc/odbc.ini
Определенные системой соединения ODBC хранятся в /home/username/.odbc.ini
Драйверы ODBC определены в /etc/odbcinst.ini
Все они являются текстовыми текстовыми файлами, подобными INI.
PHP имеет встроенную поддержку соединения для MySQL, поэтому соединение ODBC не требуется. ODBC потребуется для любой среды базы данных, не поддерживаемой PHP.
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"; }