我正在建立一个与CI 3网络应用程序,我必须使用两个不同的数据库连接,以满足一定的要求。我已经将配置加载到database.php文件中,当然,我可以使用内置类连接到它们。
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'primary',
'dbdriver' => 'mysqli'
);
$db['customer'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root_1',
'password' => 'root_1',
'database' => 'secondary',
'dbdriver' => 'mysqli'
);class Table extends MY_Model
{
public function __construct()
{
parent::__construct();
$this->_database = $this->load->database('customer', TRUE);
}
public function create_table()
{
return $this->_database->query("CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)");
}
}但是我需要使用dbForge来创建表。但是,dbForge类只使用“默认”连接。Codeigniter dbForge文档没有给出将不同的db连接加载到dbForge的方法。有人知道如何以优雅的方式处理这个问题吗?
发布于 2015-11-03 07:45:53
经过一点研究,我找到了正确的方法。
$this->load->dbForge()实际上可以接受一个参数,如果我们传递一个数据库对象,它将使用该连接来执行操作。
此外,我们还可以传递第二个参数并获得一个单独的对象。
$this->dbForgeSecondary = $this->load->dbforge($this->_database, TRUE);简单而又很酷。
https://stackoverflow.com/questions/33492627
复制相似问题