2015-10-02 30 views
1

我正在開發一個帶有AWS EC2服務器(使用php)的Web應用程序來訪問MS SQL Server數據庫。AWS EC2 linux + PHP + ODBC +遠程MS SQL服務器

長時間搜索解決方案後,我發現此解決方案使用ODBC驅動程序。很好,開發進展順利,我沒有問題連接到數據庫或持久數據。

但是當我部署我的應用程序,任何操作返回此錯誤:

ERRO: IM001: [unixODBC][Driver Manager]Driver does not support this function

我真的嘗試了所有我知道的,無法解決這個問題。

我的EC2的配置是:

yum install unixODBC unixODBC-devel freetds freetds-devel

我的ODBC/freetds的conf文件是:

/etc/odbc.ini

[TDS_NAME] 
     Description = decription 
     Driver = TDS_NAME 
     Database = MY_DB 
     Servername = TDS_NAME 
     UID = VIPS 
     Port = 1433 
     TDS_Version= 7.3 

的/ etc/ODBCINST。 ini

[TDS_NAME] 
     Description = TDS Connection 
     Driver64 = /usr/lib64/libtdsodbc.so 
     Setup64 = /usr/lib64/libtdsS.so 
     FileUsage = 1 
     UsageCount = 1 
[ODBC] 
     Trace = yes 
     TraceFile /tmp/odbc.log 

/etc/freetds.conf

[TDS_NAME] 
     host = MY_HOST 
     port = MY_PORT 
     tds version = 7.3 

我使用odbc_execute()或odbc_exec運行我的查詢()和錯誤發生時,我請教有一些參數。我很確定問題不在於我的配置文件,因爲我可以成功連接到服務器並運行簡單的「SELECT * FROM表」,並使用運行任何查詢的isql進行連接。

任何人都可以幫到我嗎?

OBS:PHP運行的版本 - PHP 5.6.10

回答

1

有幾件事情要考慮:

  • 您運行的是什麼版本的freetds的嗎?
  • 您運行的是哪個版本的SQL Server?

您需要此選項才能正確選擇正確的TDS版本。你被配置爲使用TDS 7.3,這需要FreeTDS 0.95和SQL Server 2008.如果你只是在做基本的東西,或許考慮將你的TDS版本改爲7.2或7.1?

這裏是什麼功能都支持一個方便的圖表,通過該freetds的TDS版本:

http://www.freetds.org/userguide/choosingtdsprotocol.htm

祝你好運!

+0

我沒有這麼多的運氣:(我試圖升級我的freeTDS版本(0.95)和降級我的TDS版本,但同樣的錯誤出現。順便說一句,有沒有任何存儲庫freeTDS 0.95?下載並安裝tar.gz.我不知道是否安裝好,因爲安裝沒有創建一個tsql的符號鏈接,我需要自己做這個... –

+0

嗯,它是運行的早期版本的freeTDS,我使用'yum install freetds'進行安裝並獲得了此版本。我的SQL Server是2008. –

+0

現在我明白了!除了將我的freeTDS升級到0.95,我不得不從我的查詢中刪除所有參數,我不知道是否更好的解決方案,但它的工作原理!謝謝:) –