2
我正在用CI 3构建一个Web应用程序,我必须针对特定需求使用2个不同的数据库连接。我已经将配置加载到database.php文件,我当然可以使用内置的类连接到它们。Codeigniter 3与dbforge的多个数据库连接
$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'
);
我使用的是从here的MY_Model。所以我扩展它们如下。
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类只使用'default'连接。 Codeigniter dbForge文档没有提供加载到dbForge的不同db连接的方法。任何人都知道如何以优雅的方式解决这个问题?
检查此[链接](http://stackoverflow.com/questions/16500733/codeigniter-dbforge-create-database-and-tables)这是否对你有帮助? – Saty
@Saty我已经通过链接,这看起来不像一个优雅的方式。特别是因为我打算使用迁移和所有与“次要”连接。 – Fawzan
你可以通过URL传递特定的参数,并根据URL连接到特定的数据库 –