php5.4使用dblib扩展,连接sqlserver中文乱码问题
在使用php链接sqlserver的时候,查询出来的数据,编码不稳定,一会utf8,一会出现问号。很纠结。下面的方法,可以解决此种问题。前提是dblib扩展。
如果查到的结果是乱码,更改/usr/local/freetds/etc/freetds.conf
将global中添加了一条
1 | client charset = UTF8 |
附加:
php安装dblib扩展的方法步骤。(备注,一下步骤,没有验证。)
1.先安装freetds 然后修改配置文件
freetds编译安装
# wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
# tar -zxvf freetds-patched.tar.gz
# cd freetds-1.00.86
# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
# make && make install
2.再装mssql
进到目录下编译安装
1 2 3 4 | /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds make make install |
3.再装dblib
进到目录下编译安装
1 2 3 4 | /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds make make install |
4.修改php.ini
1 2 | extension=mssql.so extension=pdo_dblib.so |
tsql客户端连接的命令
1 | /usr/local/freetds/bin/tsql -H 192.168.1.100 -p 1433 -U sa -P 123456 -D user |
修改配置文件
/usr/local/freetds/etc/freetds.conf
配置文件位置
1 2 | tds version = 8.0 //修改 client charset = UTF8 //新增 |
如果连不上数据库,就检查一下版本,将/usr/local/freetds/etc/freetds.conf中global选项中tds version = 8.0
如果查到的结果是乱码,更改/usr/local/freetds/etc/freetds.conf将global中添加了一条 client charset = UTF8
Adaptive Server is unavailable or does not exist” error connecting to SQL Server from PHP 是没加端口引起的
要加端口不然连不上
'dblib:host=192.168.8.888:1433;dbname=xxxx'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端