用于PHP(ODBC)的MSSQL驱动程序随机停止发送Unicode字符

时间:2017-02-07 13:32:55

标签: php sql-server odbc freetds

我使用PHP和ODBC / FreeTDS驱动程序从MSSQL数据库*获取数据。

我正在运行PHP-FPM 7.0,我的freetds.conf看起来像这样:

[NAME]
host = HOST_NAME
instance = ISTANCE_NAME
tds version = 8.0
text size = 193536

我的/etc/odbcinst.ini看起来像这样:

[FreeTDS]
Description = FreeTDS Driver v0.91
Driver = /usr/lib/libtdsodbc.so
fileusage=1
dontdlclose=1
UsageCount=1

我的/etc/odbc.ini看起来像这样:

[NAME]
Description             = MSSQL Server
Driver                  = FreeTDS
Database                = DB_NAME
ServerName              = SERVE_NAME
TDS_Version             = 8.0

问题

大多数时候我会正常回复Unicode字符(đžšć等)(在Arch上作为普通字符,在Ubuntu上作为\ uXXXX字符,但json_decode负责处理)。但是在两个系统上,连接将随机停止正常工作并开始返回乱码文本(即“?”而不是Unicode字符)。

但重启php-fpm服务会解决问题。现在我不想每隔几分钟重启php-fpm,所以......可能是什么问题?

*不要问。您不想知道“image”数据类型。

0 个答案:

没有答案