关于TP3.2框架读取Sql server中文字段数据以及处…
2018-11-26 07:57:49来源:博客园 阅读 ()
最近要做一个项目,需要使用TP3.2框架,之前什么也不会,就硬着头皮上了,结果真的闹了挺多emmmmmm挺低级的错误,就像SQL Server中文字段的读取,一开始我是照着读取英文字段的格式来写的,在Model层里
public function getAdminByUsername($username='') { $res = $this->_db->where('username="'.$username.'"')->select(); return $res; }
然后我试着传了一个中文值 '欢送' 进去,但是这样做的结果
提示列名‘欢送’无效,我照着提示的错误去搜索,但是搜索到的结果跟我想要的并不一样,我觉得我的格式没问题啊,输入的字符串,所以在where里面也是做了对应的处理的
我找了一天多也没找到解决方法,就很难过。
最后发现错误的原因比较偶然,我在四处搜索时候看到了这个,忘了是哪里看到的了
$map['acct']=acct; $res=$this_db->where($map)->select();
然后模仿它的格式,把自己的代码改成这样
public function getAdminByUsername($username='') { $map['J名']=$username; $res = $this->_db->where($map)->select(); return $res; }
就是把中文字段存入到数组的值里面去,然后放入where中,这样就可以读出数据来了。但是读出来的数据,用var_dump输出,一般的话要么字段乱码数据不乱码,要么数据乱码字段不乱码。这个时候需要用两重foreach进行转码,把对应乱码的数据转码就正常了
foreach ($result as $key => $value) { foreach ($value as $k1 => $v1) { $k1=iconv("GBK","UTF-8",$k1); $arr[$key][$k1]=$v1; } }
函数主体是这样,在读完数据以后调用一次函数,就可以解决乱码了
这两个问题困扰了我一个星期,现在想想,还是自己真的对TP3.2框架一点都不了解才会这样,很基础的错误,在这里写出来希望以后看到自己的文章还会想起这段无头苍蝇乱飞的日子
2018-11-22
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Laravel框架实现redis集群的方法分析 2020-01-17
- thinkPHP框架中执行原生SQL语句的方法 2020-01-16
- 详解Yii2框架实现登录、退出及自动登录功能的方法 2019-12-15
- 关于PHP中strtr函数的使用 2019-10-31
- PHP开发框架Laravel数据库操作方法总结 2019-10-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash