首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSSQL和PHP 7 (32位系统)

MSSQL和PHP 7 (32位系统)
EN

Stack Overflow用户
提问于 2017-02-22 01:46:12
回答 1查看 713关注 0票数 1

我正在尝试在32位系统(Ubuntu,32位)上查找适用于PHP 7的MSSQL。但是当我尝试遵循安装说明(https://github.com/Microsoft/msphpsql)时,它似乎只适用于64位系统?

据我所知,命令curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list返回arch=amd64。有没有可能获得32位/i386格式?

谢谢你的帮助!

编辑:看起来我可以使用sudo apt-get install php7.0-sybase作为备份解决方案,如果我不能让它工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 14:36:04

这为我解决了这个问题:

代码语言:javascript
复制
sudo apt-get install php7.0-sybase

因为我需要UTF-8编码,所以我必须首先更改tds的版本:

代码语言:javascript
复制
sudo vim /etc/freetds/freetds.conf

定位

代码语言:javascript
复制
[global]
    # TDS protocol version
;    tds version = VERSION_NUMBER

将当前版本号设置为至少7.0,并从行首删除;。为了设置UTF-8全局添加:

代码语言:javascript
复制
client charset = UTF-8

低于您刚刚设置的版本。

重新启动php-fpm:

代码语言:javascript
复制
sudo service restart php7.0-fpm restart

当我使用Nginx时,我也重新启动了Nginx,只是为了确认一下。现在尝试添加mssql连接:

代码语言:javascript
复制
$this->connection = new PDO('dblib:host='.$this->hostname.':'.
                            $port.';dbname='.$this->db_name.';charset=UTF-8'
                            ,$username, $password);

请注意charset=UTF-8部件。这是可以删除的,但是如果您不在配置文件中设置客户端字符集,这是您可以设置它的另一个地方。如果您更改连接字符串中的字符集,它将覆盖全局值。

欢迎光临!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42374360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档