【发布时间】:2020-03-05 14:41:56
【问题描述】:
如何根据输入变量在 codeigniter 3 中建立多个数据库连接?例如一个控制器有一个数据库,所以每个控制器有一个不同的数据库。因为如果您从 database.php 配置中更改它,数据库名称将保持不变,而不是根据控制器进行调整。请寻求解决方案。谢谢。
【问题讨论】:
标签: php mysql database codeigniter-3
如何根据输入变量在 codeigniter 3 中建立多个数据库连接?例如一个控制器有一个数据库,所以每个控制器有一个不同的数据库。因为如果您从 database.php 配置中更改它,数据库名称将保持不变,而不是根据控制器进行调整。请寻求解决方案。谢谢。
【问题讨论】:
标签: php mysql database codeigniter-3
一般我们在“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');
}
【讨论】: