2017-02-21 63 views
0

我試圖在32位系統(Ubuntu,32位)系統上爲PHP 7找到MSSQL。但是當我嘗試按照安裝說明(https://github.com/Microsoft/msphpsql)時,它似乎只適用於64位系統?MSSQL和PHP 7(32位系統)

據我所見,命令curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list返回arch=amd64。 它有可能得到它在32位/ i386?

感謝您的幫助!

編輯:看起來像我可以使用sudo apt-get install php7.0-sybase作爲備份解決方案,如果我沒有得到它的工作。

回答

1

這解決了我的問題:

sudo apt-get install php7.0-sybase 

,因爲我需要UTF-8編碼我不得不改變TDS的版本第一:

sudo vim /etc/freetds/freetds.conf 

找到

[global] 
    # TDS protocol version 
; tds version = VERSION_NUMBER 

將當前版本號設置爲至少7.0,並從行首開始刪除;。爲了設置UTF-8全球地址,請在您剛剛設置的版本下方添加:

client charset = UTF-8 

重啓PHP-FPM:

sudo service restart php7.0-fpm restart 

當我使用Nginx的我重新啓動這也只是可以肯定的。 現在嘗試添加一個MSSQL連接:

$this->connection = new PDO('dblib:host='.$this->hostname.':'. 
          $port.';dbname='.$this->db_name.';charset=UTF-8' 
          ,$username, $password); 

注意charset=UTF-8部分。這可以被刪除,但如果你沒有在配置文件中設置客戶端字符集,這是另一個地方,你可以設置它。 如果更改連接字符串中的字符集,它將覆蓋全局值。

問候!