失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > php mssql扩展SQL查询中文字段名解决方法【PHP】

php mssql扩展SQL查询中文字段名解决方法【PHP】

时间:2019-01-27 19:00:15

相关推荐

php mssql扩展SQL查询中文字段名解决方法【PHP】

后端开发|php教程

mssql扩展,中文字段名

后端开发-php教程

A、问题:

.net网站源码如何打开,ubuntu 怎么调字体,利用vps 爬虫小说,%s php,金华火腿seolzw

数据库是MS SQLServer2000,要把SQLServer2000里的一张表的数据导入MySQL5,其中SQLServer2000表的字段以简体中文命名(强烈建议不要以中文做为字段名)。其实操作就是对SQLServer查询记录,插入到MySQL里。选择的脚本语言是PHP,PHP打开MSSQL和MySQL扩展,对这两个数据库操作都是很容易的问题。

问题就出现在SQLServer中表的字段名是中文,写好的查询语句在SQLServe里测试是通过有记录返回,用PHP的MSSQL扩展查询就是报错。

上网查了资料,网上相关的信息不太多,很多网友都认为是PHP的MSSQL扩展不支持SQL语句中有中文。查了一下资料,PHP的MSSQL是支持SQL中有中文的语句。出现报错问题大多是因为编码的问题,编码数据库和编码与查询语句编码不统一,查询语句到SQLServer里中文部分就成了乱码,造成查询失败。

传奇源码分享,vscode alert,ubuntu网络重启命令,tomcat事务,sqlite c 接口,访问虚拟服务器,今日头条插件不见了,web前端框架总结,爬虫工程师发展,php去注释,讯搜seo,mysql 大型网站,php 网页聊天室代码,侠客模板制作,dedecms生成列表页面慢,医疗管理系统软件源码,matlab仿真跳频信号程序lzw

B、解决方法:

php图片站源码,ubuntu中搭建qt,puthon构造爬虫程序,安装php可以写php吗,周文军 seolzw

知道了原因,接下来分析解决,确认是编码不统一的问题。解决分以下几步:

1、确认SQLServer 数据库的编码,我的数据编码是GBK。

2、确认当前PHP脚本文件的编码,我的编码是UTF-8。

3、转换SQL查询语句的的编码。

补充:有的网友提到要把PHP的脚本文件编码转成和数据库编码一致,其实这一步大可不必,只要确认你的SQL语句和数据库的编码一致就可以,这里建议不必转换的原因是如果你的PHP脚本文件里包含其它PHP脚本,那也得对所有include或require的脚本文件编码转换,不然PHP脚本编码不统一很容易出错,若互相关联的文件很多,这也是一件很麻烦的问题而且把事情复杂化了。

C、方案:

写一个转换函数,在把SQL操作前把SQL语句编码转换。下面贴出我的范例代码:

//编码转换函数

function utf8togb($s) {

return iconv(utf-8, gbk//IGNORE, $s); // IGNORE 参数是遇到不成转换的字符时忽略

}

//建议把所有中文字段用英文别名替换,方便下面操作还有编码转换等问题

$sql="SELECT [id], [栏目] as typeid, [正题] as title, [作者] as author, convert(text, [正文]) as body FROM [文章表];";

$sql = utf8togb($sql);

如果觉得《php mssql扩展SQL查询中文字段名解决方法【PHP】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。