zoukankan      html  css  js  c++  java
  • php5.4使用dblib扩展,连接sqlserver中文乱码问题

    在使用php链接sqlserver的时候,查询出来的数据,编码不稳定,一会utf8,一会出现问号。很纠结。下面的方法,可以解决此种问题。前提是dblib扩展。

    如果查到的结果是乱码,更改/usr/local/freetds/etc/freetds.conf将global中添加了一条

    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

    进到目录下编译安装

    /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

    进到目录下编译安装

    /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

    extension=mssql.so
    extension=pdo_dblib.so

    tsql客户端连接的命令

    /usr/local/freetds/bin/tsql -H 192.168.1.100 -p 1433 -U sa -P 123456 -D user

    修改配置文件

    /usr/local/freetds/etc/freetds.conf 配置文件位置

    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'

  • 相关阅读:
    1152 Google Recruitment (20 分)
    1095 解码PAT准考证 (25 分)
    1093 字符串A+B (20 分)
    1094 谷歌的招聘 (20 分)
    拖动无边框窗体
    全屏显示窗体
    动态按钮的窗体界面
    以树形显示的窗体界面
    设计软件启动界面
    动画显示窗体
  • 原文地址:https://www.cnblogs.com/xzlive/p/10185282.html
Copyright © 2011-2022 走看看