如何在CodeIgniter用户指定的数据库连接(How to connect with user

2019-06-26 11:46发布

我有一个项目中,我必须与用户指定的数据库连接。 我想实现它在一个适当的笨的风格,但我不知道我怎么能做到这一点在database.php中文件笨商店数据库证书有什么办法让它动。 还是有实现这一目标的任何其他的方法呢? 我用Google搜索,但没有发现任何有用的。 任何帮助和建议,将不胜感激。

更新:
该项目是有关报告。 我有一个表格中,我得到了数据库的登录凭据,然后生成报告他们的数据库一切都在运行时完成。

Answer 1:

根据该指南 ,你可以通过手动的第三个参数传递数据库连接设置$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);


Answer 2:

我知道这是一个老话题,但我一直在寻找这些信息,并相信其他人可能需要太多。

你并不需要创建单独的数据库配置,如果你只需要在同一连接上使用不同的数据库。 当你需要,这样您可以切换到不同的数据库:

$this->db->db_select($database2_name)

这解决了我。



Answer 3:

首先一个字的警告

它应该指出的是,这可能不是一个推荐的最佳想法,除非你限制允许数据库名称的用户或不允许他们选择它自己。

如果第一种情形是必须的,请消毒数据,如果你知道它的定义的数据库名称列表..他们提供一个清单,做验证对列表。

话虽如此:

这是你的描述代码。 我这样做,我的控制器。 和参考$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



文章来源: How to connect with user specified database in codeigniter