日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

adodb 连接mysql_PHP中使用ADODB连接MySQL中文乱码

發布時間:2023/12/14 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adodb 连接mysql_PHP中使用ADODB连接MySQL中文乱码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近寫程序,朋友推薦使用ADODB進行數據庫連接,速度快,支持數據庫種類很多,功能也很強大,使用一下覺得很不錯。我程序使用Extjs,數據庫PostgresQL,字符集使用的是utf-8,ADODB沒有做任何改動就使用上了,很不錯。

有另外一個項目,也使用Extjs,數據庫使用MySQL5,我把數據庫連接也改成了ADODB,但是問題出現了,中文顯示的都是???,檢查數據庫的字符集,Apache的字符集,PHP的字符集都是utf-8的,不知道問題出在了什么地方,把ADODB的源碼也讀了一遍,也沒有找到。

最后在網上看到了很多朋友都遇到了這樣的問題,也提了不少的解決方法,試過后都不行,最后看到了關于Mysql的字符設置的資料,于是修改了ADODB中mydql驅動的代碼,解決了問題,先把具體的方法同大家共享一下:

找到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;

}

總結

以上是生活随笔為你收集整理的adodb 连接mysql_PHP中使用ADODB连接MySQL中文乱码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。