get list of ODBC data source in local pc using PHP

走远了吗. 提交于 2020-01-05 05:50:06

问题


I'm looking for a way to get a list of ODBC data sources in local PC using PHP. How can I achieve that?


回答1:


If I assume that you're running on windows

User defined ODBC connections are stored under HKEY_CURRENT_USER\Software\ODBC\ODBC.INI

System defined ODBC connections are stored under HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

ODBC drivers are defined under HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI

So you need some trick with php to read from registry like this one or this one

If I assume that you are on unix/linux then

User defined ODBC connections are stored under /etc/odbc.ini

System defined ODBC connections are stored under /home/username/.odbc.ini

ODBC drivers are defined under /etc/odbcinst.ini

All of them are INI-like syntax text files.




回答2:


PHP has built-in connection support for MySQL so a ODBC connection is not required. ODBC would be needed for any database environment not supported by PHP.




回答3:


    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"; 
    }


来源:https://stackoverflow.com/questions/2493159/get-list-of-odbc-data-source-in-local-pc-using-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!