首页 > 数据库 >PHP连接SQLSERVER及中文乱码问题

PHP连接SQLSERVER及中文乱码问题

时间:2023-12-14 09:33:04浏览次数:36  
标签:中文 SQLSERVER sqlsrv 乱码 SQL PHP

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位版)到php\ext\ 目录下,修改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 />";
    }
}
复制代码

标签:中文,SQLSERVER,sqlsrv,乱码,SQL,PHP
From: https://www.cnblogs.com/ailuo9494/p/17900473.html

相关文章

  • GO TCP代理(可代理SQLSERVER\MYSQL\ORCALE)
    用nginx代理不知道为什么内网能用,外网用不了,改用go写个代理临时用下,直接上代码 packagemainimport( "fmt" "io" "log" "net")varaddrstring="0.0.0.0:51415"//代理服务端口vardest_addrstring="192.168.2.120:1433"//目标地址......
  • apache 项目的php配置文件
    <VirtualHost*:80>[email protected]"/www/wwwroot/api.com"ServerNameapi.comServerAliasapi.com#errorDocument404/404.htmlErrorLog"/www/wwwlogs/api.com-error_log"Cu......
  • PHP高级面试题-1
    1、谈谈你在写sql语句需要注意有哪些点?答:select*问题,客户端需要什么,就给什么,不要给多余的字段,这种情况可能还会导致本来可以走覆盖索引的语句不能走覆盖索引。不要在查询语句字段上做函数运算,这样会让索引失效。一定要避免mysql自动类型转换,比如where‘9’=9。能不设置允许......
  • PHP高级面试题-2
    1、什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。2、SESSION与COOKIE的区别是什么,请从协议,产生的原因与作用说明?A、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求......
  • SQLServer数据库JDBC连接串参数的简单学习
    SQLServer数据库JDBC连接串参数的简单学习背景前段时间一直跟同事一起处理SQLServer比其他数据库的deadlock更多的问题.涉及到了几个驱动的参数.想着问题基本上告一段落,将这一块的情况总结一下.便于后续遇到问题时的快速处理.关于参数现阶段的字符连接串为:jdbc:s......
  • CodeIgniter3.chm 打包编译 需要 hhc.exe - php框架
    电子书地址https://github.com/CodeIgniter-Chinese/rapid-php-application-development我打包编译好了chm,https://files.cnblogs.com/files/pengchenggang/CodeIgniter3.chm.zip?t=1702438484&download=truehhc.exe下载组件HTMLHelpWorkshophhc.exe下载地址:https://ww......
  • php获取详细访客信息,获取访客IP,IP归属地,访问时间,操作系统,浏览器,移动端/PC端,环境语言,访
    问题描述:需要获取访客访问网站信息1.代码示例与说明:<?phpheader("Content-Type:text/html;charset=utf-8");        //代码中涉及字符串处理,为防止汉字乱码需加编码说明functionchinesesubstr($str,$start,$len){          ......
  • PHP 异常与错误 —— Throwable
    Throwable官方文档地址: http://php.net/manual/en/class.throwable.phpPHP支持版本:7Throwable是PHP7中可以用作任何对象抛出声明的基本接口,包括Expection(异常)和Error(错误)。 Throwable{/*抽象方法*/abstractpublicstringgetMessage(void)/......
  • 通过PowerShellPlus示例脚本学习PowerShell之-输出SQLServer服务属性
    ##=====================================================================##Title:Get-MSSQL-ServerAttrib-Csv##Description:ConnecttoSQLServerandoutputserverattributestoCSV##Author:Idera##Date:1/28/2009##Input......
  • Sqlserver镜像高可用搭建
    1.安装前准备系统相同数据库软件版本补丁相同数据库目录相同数据库恢复模式为完整主备可以ping通,可以相互通过SMSS登录对方2.创建证书2.1.主服务器和镜像服务器创建主密钥USEmasterGOCREATEMASTERKEYENCRYPTIONBYPASSWORD='Pa$$w0rd';--删除主密钥USEma......