thinkphp 同時(shí)連接兩個(gè)數(shù)據(jù)庫(kù)的配置方法如下:
1、在Db.class.php腳本文件里面的類(lèi)增加一個(gè)魔術(shù)方法__get(),寫(xiě)法如下:public function __get($propertyName){ return $this->$propertyName;}這個(gè)方法是用來(lái)訪問(wèn)類(lèi)中protected $config成員屬性用的。有的人可能會(huì)說(shuō),直接把protected改成public豈不是更好。這樣只解決了基類(lèi)的問(wèn)題,假如,子類(lèi)也同樣進(jìn)行了受保護(hù),那要你更改更多的文件,這是我們做IT程序員非常不愿意看到的事情。
2、在Model.class.php中的getTableName()方法更改如下:$tablepre = $this->db->config['tablepre'];if(empty($this->trueTableName)) {$tableName??= empty($tablepre) ? $this->tablePrefix : $tablepre;if(!empty($this->tableName)) {$tableName .= $this->tableName;}else{$tableName .= parse_name($this->name);}$this->trueTableName? ? =? ?strtolower($tableName);}return (!empty($this->dbName)?$this->dbName.'.':'').$this->trueTableName;這樣就完成了多庫(kù)自由切換時(shí),導(dǎo)致的表前綴問(wèn)題。/*******************面向?qū)ο驪DO連接方式*********************/'DB_TYPE' => 'PDO', // 數(shù)據(jù)庫(kù)類(lèi)型'DB_DSN' => 'mysql:host=localhost;dbname=master', // DSN連接。'DB_USER' => 'root', // 數(shù)據(jù)庫(kù)用戶名'DB_PWD' => '123456', // 數(shù)據(jù)庫(kù)密碼'DB_PORT' => '3306', // 數(shù)據(jù)庫(kù)端口'DB_PREFIX' => 'g_', // 數(shù)據(jù)表前綴'DB_CHARSET' => 'utf8', // 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8