我使用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”数据类型。