+ -
当前位置:首页 → 问答吧 → 测试gbk数据库在tp中的使用

测试gbk数据库在tp中的使用

时间:2009-10-23

来源:互联网

不知道有没有做过gbk数据库的tp

数据库的配置为
  1. return array(
  2. 'DB_TYPE'=>'mysql',
  3. 'DB_HOST'=>'localhost',
  4. 'DB_NAME'=>'jobhost',
  5. 'DB_USER'=>'root',
  6. 'DB_PWD'=>'',
  7. 'DB_PORT'=>'3306',
  8. 'DB_PREFIX'=>'job_',
  9.     'DB_CHARSET'=>'gbk',
  10. );
复制代码
插入数据
  1. $new=M("News");
  2.         if($new->create())
  3.         {
  4.         $id=$new->add();
  5.         }
复制代码
插入后是乱码

作者: luyi0018   发布时间: 2009-10-23



后流年说,用auto_charset转换一下,我人懒我直接通过 model里的_before_insert进入转换
试试看
  1. function _before_insert(&$data,$options)
  2.    {
  3.         $data=auto_charset($data,"UTF8","GB2312");
  4.    }
复制代码
这样插入好像也是乱码,看来不能这样弄

作者: luyi0018   发布时间: 2009-10-23

  1.         protected function _after_find(&$result,$options) {
  2.                 log::write($this->getMemberId().'---'.$this->getlastsql());
  3.                 $result=auto_charset($result,'gb2312','utf-8');
  4.         }
  5.        
  6.         protected function _after_select(&$result,$options) {
  7.                 log::write($this->getMemberId().'---'.$this->getlastsql());
  8.                 $result=auto_charset($result,'gb2312','utf-8');
  9.         }
  10.        
  11.         protected function _after_delete($data,$options) {
  12.                 log::write($this->getMemberId().'---'.$this->getlastsql());
  13.         }

  14.         protected function _after_insert($data,$options) {
  15.                 log::write($this->getMemberId().'---'.$this->getlastsql());
  16.         }

  17.         protected function _after_update($data,$options) {
  18.                 log::write($this->getMemberId().'---'.$this->getlastsql());
  19.         }

  20.         protected function _before_update(&$data,$options) {
  21.                 $data=auto_charset($data,'utf-8','gb2312');
  22.         }
  23.         protected function _before_insert(&$data,$options) {
  24.                 $data=auto_charset($data,'utf-8','gb2312');
  25.         }
复制代码
应该没错,不过我的是写在BaseModel里的。

作者: tdweb   发布时间: 2009-10-23



哈哈,是我自己错了,我用了M函数,
那时候我用D总是会出错,我就用M了,现在用D已经好了

tdweb 你这个写的真不错啊

作者: luyi0018   发布时间: 2009-10-23

学习了.谢谢分享..

作者: xieph   发布时间: 2011-04-28