【问题标题】:How to make multiple connections on codeigniter 3? [closed]如何在codeigniter 3上建立多个连接? [关闭]
【发布时间】:2020-03-05 14:41:56
【问题描述】:

如何根据输入变量在 codeigniter 3 中建立多个数据库连接?例如一个控制器有一个数据库,所以每个控制器有一个不同的数据库。因为如果您从 database.php 配置中更改它,数据库名称将保持不变,而不是根据控制器进行调整。请寻求解决方案。谢谢。

【问题讨论】:

标签: php mysql database codeigniter-3


【解决方案1】:

一般我们在“application/config/database.php”中设置我们的数据库信息。如果您使用多个数据库,您还需要在“application/config/database.php”中设置它们。

通常我们将默认数据库设置为:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "main_db";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['default']['swap_pre'] = "";
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

现在,如果您想添加另一个数据库,您可以将它设置在一个新数组中 - 我们称之为“db1”。并在“application/config/database.php”中设置如下:

$db['db1']['hostname'] = "localhost";
$db['db1']['username'] = "root";
$db['db1']['password'] = "";
$db['db1']['database'] = "db1";
$db['db1']['dbdriver'] = "mysql";
$db['db1']['dbprefix'] = "";
$db['db1']['pconnect'] = TRUE;
$db['db1']['db_debug'] = FALSE;
$db['db1']['cache_on'] = FALSE;
$db['db1']['cachedir'] = "";
$db['db1']['char_set'] = "utf8";
$db['db1']['dbcollat'] = "utf8_general_ci";
$db['db1']['swap_pre'] = "";
$db['db1']['autoinit'] = TRUE;
$db['db1']['stricton'] = FALSE;

现在如果你想在方法中使用 db1,就这样使用吧:

function example_method()
{
    $db1 = $this->load->database('db1', TRUE);
    $query = $db1->select(*')->get('users');
}

【讨论】:

  • 感谢您的回答,但问题是每个不同的控制器都有 10 个数据库。是否需要将所有数据库都输入到 database.php 配置中的新数组中?如果是这样的话,当然以后数据库再大的时候就比较麻烦了
猜你喜欢
  • 1970-01-01
  • 2016-01-16
  • 1970-01-01
  • 2016-02-08
  • 2017-12-23
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多