如同想像,許多函數不支援了,所以要
1.把 x_base/adodb 換成新版(升級php7才要)
2.把mysql_都換成mysqli_(升級php7才要)
3.把2.5.10 /class/xoopsform/formtext.php換成2.5.7的
4.改良adodb不支援utf8的問題:
找到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;
}
// returns true or false
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;
}