2017-05-31 30 views
0

我是CodeIgniter的新成员,并且正在构建一个需要访问大约40个数据库的项目。在没有配置文件的情况下在CodeIgniter中使用多个数据库

现在将它们全部添加到配置文件中看起来好像是分配不充分的工作,未来还会增加更多的数据库。

有没有办法在codeigniter框架内访问数据库而不使用数据库配置设置?

在此先感谢!

问候,

Beakerv

+1

所以,在这里你将存储数据库的登录信息,然后呢?你将不得不把它们放在某个地方...... – Jerodev

+0

好点,是否有可能在codeigniter框架内使用类似连接字符串的东西?就像你会在没有codeigniter的常规php中一样? – Beakerv

+0

是的,你可以在codeigniter中使用DSN,或者你可以为你的连接进行自定义配置,只需参考Codeigniter教程https://codeigniter.com/user_guide/database/connecting.html –

回答

0

是你可以实现你想要

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(); 


    } 
} 
+0

很酷,我不知道!现在有可能使$ config ['database'] ='your_db'; < - 变量值?所以我可以修改从下拉菜单中选择输入的数据库? – Beakerv

+0

当然它的可能 - 只是用声明的变量替换这个字符串 – sintakonte

+0

太好了,我会试试看,谢谢! – Beakerv

相关问题