我是CodeIgniter的新成员,并且正在构建一个需要访问大约40个数据库的项目。在没有配置文件的情况下在CodeIgniter中使用多个数据库
现在将它们全部添加到配置文件中看起来好像是分配不充分的工作,未来还会增加更多的数据库。
有没有办法在codeigniter框架内访问数据库而不使用数据库配置设置?
在此先感谢!
问候,
Beakerv
我是CodeIgniter的新成员,并且正在构建一个需要访问大约40个数据库的项目。在没有配置文件的情况下在CodeIgniter中使用多个数据库
现在将它们全部添加到配置文件中看起来好像是分配不充分的工作,未来还会增加更多的数据库。
有没有办法在codeigniter框架内访问数据库而不使用数据库配置设置?
在此先感谢!
问候,
Beakerv
是你可以实现你想要
class Your_Model extends CI_Model
{
protected $customDb;
public function __construct()
{
parent::__construct();
$this->loadCustomerDatabase();
}
private function loadCustomerDatabase()
{
//define your customers database
$config['hostname'] = 'localhost';
$config['username'] = 'myusername';
$config['password'] = 'mypassword';
$config['database'] = 'your_db';
$config['dbdriver'] = 'pdo';
$config['dbprefix'] = '';
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$config['cache_on'] = FALSE;
$config['cachedir'] = '';
$config['char_set'] = 'utf8';
$config['dbcollat'] = 'utf8_general_ci';
$this->customDb = $this->load->database($config, true);
//you can use this instance like any other db instance
$objQuery = $this->customDb->select("*")->from("your_table")->get();
}
}
很酷,我不知道!现在有可能使$ config ['database'] ='your_db'; < - 变量值?所以我可以修改从下拉菜单中选择输入的数据库? – Beakerv
当然它的可能 - 只是用声明的变量替换这个字符串 – sintakonte
太好了,我会试试看,谢谢! – Beakerv
所以,在这里你将存储数据库的登录信息,然后呢?你将不得不把它们放在某个地方...... – Jerodev
好点,是否有可能在codeigniter框架内使用类似连接字符串的东西?就像你会在没有codeigniter的常规php中一样? – Beakerv
是的,你可以在codeigniter中使用DSN,或者你可以为你的连接进行自定义配置,只需参考Codeigniter教程https://codeigniter.com/user_guide/database/connecting.html –