标题:
Thinkphp中解决多数据库操作乱码问题
[打印本页]
作者:
fangzhen
时间:
2009-2-27 17:30
标题:
Thinkphp中解决多数据库操作乱码问题
在Thinkphp数据库操作类里,并没有考虑到多数据库连接时字符集不同的情况,所以,我这里解决问题的思路是,在加入新的数据库连接前修改数据库的字符集 C('DB_CHARSET','latin1'); 对该数据的操作结束后,再修改回去 C('DB_CHARSET','utf8');值得注意的是,数据表中如果存储汉字的话,只能用query方法搜索数据,负责用auto_charset函数转字符编码时,不起作用。
$where = 'fid = 12';
C('DB_CHARSET','latin1');
$Threads = new Model();
$Threads->addConnect(C("DB_BBS"),1,true);
$Threads->addConnect(C("DB_MAIN"),2,true);
$Threads->switchConnect(1);
$threadList = $Threads->query("SELECT tid,fid,subject FROM cdb_threads WHERE $where ORDER BY lastpost DESC LIMIT 0,8");
dump($threadList);
$Threads->switchConnect(2);
if(count($threadList)){
$this->assign($lottType."ThreadList", auto_charset($threadList,'gb2312','utf8'));
}
C('DB_CHARSET','utf8');
目前,还没有找到更好的办法。
欢迎光临 PHP开发笔记 (http://phpvi.com/)
Powered by Discuz! 6.1.0