2017-02-21 33 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部分。这可以被删除,但如果你没有在配置文件中设置客户端字符集,这是另一个地方,你可以设置它。 如果更改连接字符串中的字符集,它将覆盖全局值。

问候!