2010-03-22 53 views
1

我正在尋找一種方法來使用PHP獲取本地PC中的ODBC數據源列表。 我該如何做到這一點?使用PHP獲取本地計算機中ODBC數據源的列表

+0

你的PHP運行在本地機器上還是遠程服務器上? – 2010-03-22 14:54:56

+0

Thanx Pekka的回覆 我在本地工作 關於 – 2010-03-22 15:00:48

+0

有PHP支持PHP http://www.php.net/manual/en/function.odbc-connect.php,但我可以'您可以看到列出可用數據源的方法。您可能必須使用Windows程序/命令來獲取列表,然後運行'exec()'來獲取結果。但是也許有些東西出現在這裏,等一下。 – 2010-03-22 15:05:58

回答

0

PHP具有內置的MySQL連接支持,因此不需要ODBC連接。任何PHP不支持的數據庫環境都需要ODBC。

1

如果我假設你使用的是Windows

用戶定義的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從註冊表像this onethis one

讀如果我認爲你是在Unix/Linux然後

用戶定義的ODBC連接存儲下的/ etc/ODBC。 INI

系統定義ODBC連接存儲下/home/username/.odbc.ini

ODBC驅動定義在/etc/odbcinst.ini

所有這些都是類似INI的語法文本文件。

0
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"; 
    } 
相關問題