【发布时间】:2016-10-18 10:21:46
【问题描述】:
我想连接到 3 个数据库。如果我只连接两个数据库,我没有任何问题。当我尝试连接 3 个数据库时。我遇到了无法连接到数据库 2 的问题。
这是我在 database.php 中的配置:
$db['default'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432@',
'database' => 'HSP',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['crm'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432@',
'database' => 'CRM',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
$db['pltapol'] = array(
'dsn' => '',
'hostname' => '192.168.11.29,1433',
'username' => 'userhsp',
'password' => 'hsp432@',
'database' => 'pltapol',
'dbdriver' => 'mssql',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => FALSE,
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
在我的模型中是这样的:
private $db2;
private $db3;
public function __construct()
{
parent::__construct();
$this->db2 = $this->load->database('crm', TRUE);
$this->db3 = $this->load->database('pltapol', TRUE);
}
我只能从数据库 pltapol 中获取对象,但我无法从 crm 中获取对象。如何解决?
【问题讨论】:
-
$this->db2->query('YOUR QUERY');和$this->db3->query('YOUR QUERY');但还要确保将'pconnect' => TRUE默认更改为 false -
我尝试将所有数据库 'pconnect' 更改为 false,然后我无法连接到所有数据库。其他建议?
标签: php sql database codeigniter sql-server-2008