我有一个项目中,我必须与用户指定的数据库连接。 我想实现它在一个适当的笨的风格,但我不知道我怎么能做到这一点在database.php中文件笨商店数据库证书有什么办法让它动。 还是有实现这一目标的任何其他的方法呢? 我用Google搜索,但没有发现任何有用的。 任何帮助和建议,将不胜感激。
更新:
该项目是有关报告。 我有一个表格中,我得到了数据库的登录凭据,然后生成报告他们的数据库一切都在运行时完成。
我有一个项目中,我必须与用户指定的数据库连接。 我想实现它在一个适当的笨的风格,但我不知道我怎么能做到这一点在database.php中文件笨商店数据库证书有什么办法让它动。 还是有实现这一目标的任何其他的方法呢? 我用Google搜索,但没有发现任何有用的。 任何帮助和建议,将不胜感激。
更新:
该项目是有关报告。 我有一个表格中,我得到了数据库的登录凭据,然后生成报告他们的数据库一切都在运行时完成。
根据该指南 ,你可以通过手动的第三个参数传递数据库连接设置$this->load->model
:
$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = "mydatabase";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$this->load->model('Model_name', '', $config);
// or as gorelative notes, to access multiple databases:
$DB2 = $this->load->database($config, TRUE);
我知道这是一个老话题,但我一直在寻找这些信息,并相信其他人可能需要太多。
你并不需要创建单独的数据库配置,如果你只需要在同一连接上使用不同的数据库。 当你需要,这样您可以切换到不同的数据库:
$this->db->db_select($database2_name)
这解决了我。
它应该指出的是,这可能不是一个推荐的最佳想法,除非你限制允许数据库名称的用户或不允许他们选择它自己。
如果第一种情形是必须的,请消毒数据,如果你知道它的定义的数据库名称列表..他们提供一个清单,做验证对列表。
这是你的描述代码。 我这样做,我的控制器。 和参考$db2->
在我的模型。
$config['hostname'] = "localhost";
$config['username'] = "myusername";
$config['password'] = "mypassword";
$config['database'] = $customUserDatabase;
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$DB2 = $this->load->database($config);
$q = $DB2->where('id', 13)->get('tablename');
if( $q->num_rows() > 0 ){
return $q->result();
}else{
return false;
}
http://codeigniter.com/user_guide/database/connecting.html
参考部分有关连接到多个数据库...
连接到多种数据库
如果您需要连接到多个数据库同时你可以这样做如下:
$DB1 = $this->load->database('group_one', TRUE); $DB2 = $this->load->database('group_two', TRUE);
注:更改单词“group_one”和“group_two”到要连接到特定的组名(或者您可以通过连接值如上所示)。
由第二参数设置为TRUE(布尔值)的函数将返回数据库对象。
当您连接这种方式,您将使用对象名称来发出命令,而不是本指南中使用的语法。 换句话说,而不是发布命令:
$this->db->query(); $this->db->result(); etc...
实际上,您将使用:
$DB1->query(); $DB1->result(); etc...
我把我的控制器/型号的片段使用此完全相同的功能。 我有一个需要使用跨多个数据库的相同的凭据/ CONFIGS连接到多个数据库..因此,我能够使用$this->db->
获得CONFIGS。
:你可以在这里看到它的要点https://gist.github.com/08a4f45da1ff7e177425