PHP中使用ADODB连接MySQL中文乱码

找到ADODB中的drivers目录下的adodb-mysql.inc.php文件,修改其中的 _connect和 _pconnect两个函数,各增加以下代码:+ @mysql_query("SET NAMES 'utf8'", $this->_connectionID);即可,位置在SelectDB一行之前。  

 function _connect($argHostname, $argUsername, $argPassword, $argDatabasename)
 {
  if (!empty($this->port)) $argHostname .= ":".$this->port;
  
  if (ADODB_PHPVER >= 0x4300)
   $this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
            $this->forceNewConnect,$this->clientFlags);
  else if (ADODB_PHPVER >= 0x4200)
   $this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword,
            $this->forceNewConnect);
  else
   $this->_connectionID = mysql_connect($argHostname,$argUsername,$argPassword);
 
  if ($this->_connectionID === false) return false;
  + @mysql_query("SET NAMES 'utf8'", $this->_connectionID);
  if ($argDatabasename) return $this->SelectDB($argDatabasename);
  return true; 
 }

 

function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename)
    {
        if (!empty($this->port)) $argHostname .= ":".$this->port;
        
        if (ADODB_PHPVER >= 0x4300)
            $this->_connectionID = mysql_pconnect($argHostname,$argUsername,$argPassword,$this->clientFlags);
        else
            $this->_connectionID = mysql_pconnect($argHostname,$argUsername,$argPassword);
        if ($this->_connectionID === false) return false;
        if ($this->autoRollback) $this->RollbackTrans();
        + @mysql_query("SET NAMES 'utf8'", $this->_connectionID);
        if ($argDatabasename) return $this->SelectDB($argDatabasename);
        return true;    
    }

posted on 2010-10-16 18:24  woshilee  阅读(591)  评论(0)    收藏  举报

导航