ZendFramework framework implements methods to connect two or more databases
Dec 14, 2016 am 10:34 AMThe example in this article describes the method of connecting two or more databases using the ZendFramework framework. Share it with everyone for your reference, the details are as follows:
Configuration file:
<db> <adapter>PDO_MSSQL</adapter> <config> <host>localhost</host> <port>1433</port> <username>sa</username> <password>123456</password> <dbname>edudb</dbname> <pdoType>sqlsrv</pdoType> </config> </db> <!-- 測(cè)試多數(shù)據(jù)庫(kù) --> <db2> <adapter>PDO_MSSQL</adapter> <config> <host>localhost</host> <port>1433</port> <username>sa</username> <password>123456</password> <dbname>test</dbname> <pdoType>sqlsrv</pdoType> </config> </db2>
Inlet file
//配置數(shù)據(jù)庫(kù)連接 $db_config = $web_config->db->config->toArray(); //var_dump($db_config); $db = Zend_Db::factory($web_config->db->adapter, $db_config); //var_dump($db); //exit; //$db->query('set NAMES utf8'); //$db->getProfiler()->setEnabled(false); Zend_Db_Table::setDefaultAdapter($db);
Here is the default database
dao.php calls the default database
$db = &$this->getAdapter();
dao2.php connects to others Database
function init() { $web_config = $this->getCfg(); $this->db2_config = $web_config->db2->config->toArray(); //var_dump($this->db_config); $this->db = Zend_Db::factory($web_config->db2->adapter, $this->db2_config); Zend_Db_Table::setDefaultAdapter($this->db); } public function returnDb(){ return $this->db; }
Call
$db = &$this->getAdapter();
will still connect to the default database.
Just use
$this->db
Let’s take a look at the complete dao2.php
getCfg(); $this->db2_config = $web_config->db2->config->toArray(); //var_dump($this->db_config); $this->db = Zend_Db::factory($web_config->db2->adapter, $this->db2_config); Zend_Db_Table::setDefaultAdapter($this->db); } public function returnDb(){ return $this->db; } public function getData($table,$where = false, $order = 'id ASC', $pagesize = false, $offset = false, $count = false, $from = false, $join = false, $group = false) { //$this->db = &$this->getAdapter(); $select = $this->db->select(); if ($where && is_array($where)) { foreach ($where as $key => $val) { //print_r($where); if($val['type']==1){ $select->where($key, $this->convert2gbk($val['val'])); }else{ $select->orwhere($key, $this->convert2gbk($val['val'])); } } } if (!$from) $from = '*'; //echo $select."
"; if ($pagesize) { $select->limit($pagesize, $offset); } //echo $select."
"; if (is_array($order)) { foreach ($order as $value) { $select->order($value); } } else { $select->order($order); } //echo $select."
"; $select->from($table, $count ? "COUNT(".$table.".id)" : $from); if (is_array($group)) { foreach ($group as $key => $val) { $select->group($val); } if ($count) { $result = $this->db->fetchAll($select); //echo $select."
"; return $result; } } else { if ($count) { $result = $this->db->fetchOne($select); //echo $select."
"; return $result; } } if (is_array($join)) { foreach ($join as $key => $val) { //$select->join($key, $val[0], $val[1]); $select->joinleft($key, $val[0], $val[1]); } } //echo $select."
"; //echo $select;exit; $result = $this->db->fetchAll($select); foreach ($result as $key => $value) { foreach ($value as $key2 => $value2) { $result[$key][$key2] = $this->convert2utf8($value2); } } return $result; } /** * 向表中插入數(shù)據(jù) * array $adata 數(shù)據(jù) * string $table 表名 * int $insterid 是否需要返回插入ID * @return true or false or int */ // @bianding 2013.11.04 更改了pdo中mssql.php的lastInsertId()函數(shù) // @bianding 2013.11.04 經(jīng)測(cè)試 mssql.php中的lastInsertId()函數(shù)中的SELECT兩種方式都行 function SaveData($adata, $table, $insterid = 0, $aLog = false) { //$this->db = &$this->getAdapter(); foreach ($adata as $key => $value) { $adata[$key] = $this->convert2gbk($value); } if ($this->db->insert($table, $adata)) { //var_dump($this->db->getProfiler()); $insertedID = $this->db->lastInsertId(); if ($insterid) { return $insertedID; } else { return TRUE; } } else { return false; } } /** * 刪除表中數(shù)據(jù) * * @param string $table 表名 * @param string $where 'id ='.$id 條件 * @return true or false */ function DelData($table, $where, $aLog = false) { //$this->db = & $this->getAdapter(); if ($this->db->delete($table, $where)) { return TRUE; } else { return FALSE; } } /** * 更新表中數(shù)據(jù) * * @param string $table * @param array $adata * @param string $where 'id ='.$id * @return true or false */ function UpdateData($table, $adata, $cond, $aLog = false) { //$this->db = & $this->getAdapter(); foreach ($adata as $key => $value) { $adata[$key] = $this->convert2gbk($value); } if ($this->db->update($table, $adata, $cond)) { return TRUE; } else { return false; } } public function clearTable($table) { //$this->db = &$this->getAdapter(); $result = $this->db->query('TRUNCATE TABLE ' . $table); } public function executeSql($strSql) { //$this->db = &$this->getAdapter(); $result = $this->db->query($strSql); } function convert2utf8($string) { $config = $this->getCfg(); $pdoType = $config->db->config->pdoType; if($pdoType == 'dblib'){ return iconv("gbk","utf-8",$string); }elseif($pdoType == 'sqlsrv'){ //$encode = mb_detect_encoding($string, array('UTF-8',"GB2312",'GBK','BIG5')); //echo $encode; return mb_convert_encoding($string,"UTF-8","UTF-8"); //return $string; } } function convert2gbk($string) { $config = $this->getCfg(); $pdoType = $config->db->config->pdoType; if($pdoType == 'dblib'){ return iconv("utf-8","gbk",$string); }elseif($pdoType == 'sqlsrv'){ //$encode = mb_detect_encoding($string, array('UTF-8',"GB2312",'GBK','BIG5')); //echo $encode; return mb_convert_encoding($string,"UTF-8","UTF-8"); //return $string; } } protected function &getCfg() { if ($this->cfg_ === null) { $registry = Zend_Registry::getInstance(); $this->cfg_ = $registry->get('web_config'); } return $this->cfg_; } }
For more content, please pay attention to the PHP Chinese website (www.miracleart.cn)!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)