zoukankan      html  css  js  c++  java
  • PHP连接SQLSERVER及中文乱码问题

    PHP连接SQLSERVER

    1、PHP 5.3及以后版本不再支持mssql模块,应使用SQLSRV或PDO_SQLSRV;

    2、下载 PHP 驱动程序。 http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 内含Windows平台各种版本扩展文件,支持SQL2005及以上版本

    3、复制所需文件如:php_sqlsrv_73_nts_x64.dll (PHP7.3非线程安全64位版)到phpext 目录下,修改php.ini 添加扩展 extension=php_sqlsrv_73_nts_x64

    如果提示ODBC问题

    Connection failed: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server.

    是因为使用32位数据库,需要安装32位ODBC驱动(64位系统未安装)

    https://www.microsoft.com/en-us/download/confirmation.aspx?id=36434

    下载msodbcsql.msi安装即可。

    PHP连接SQLSERVER中文乱码问题

    1、SQL语句中有中文会导致查询失败;

    2、查询结果有中文会显示乱码。

    解决方法(较简单,建议使用):

    1、PHP文件保存时选ANSI编码;

      附:VS Code 改变默认文字编码,File(文件)->Preferences(首选项)->Usersettings(设置),搜索encoding,将utf8改为gbk

    2、PHP文件头加入

    header("Content-Type: text/html; CHARSET=GBK");
    解决方法(较麻烦):
     
    1、PHP文件保持默认UTF-8编码;
    2、查询前对SQL转码
    $sql = "SELECT '是'='是'"; 
    $sql=iconv('UTF-8','GBK',$sql);

    3、查询结果对含中文列转码

    $stmt = sqlsrv_query( $conn, $sql);
    
    if($stmt){
        while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
            echo iconv('GBK','UTF-8',$row[0])."<br />";
        }
    }
  • 相关阅读:
    linux 命令展示该目录下的所有子目录及文件结构 tree
    ssh-keygen
    centos安装git
    spring-boot parent变更为依赖方式
    centos docker compose安装
    UML——活动图
    UML——构件图
    UML——部署图
    UML——用例图
    UML——关系
  • 原文地址:https://www.cnblogs.com/hhlotus/p/12718748.html
Copyright © 2011-2022 走看看