如何在会话中选择多个数据库

时间:2019-02-13 10:31:53

标签: php database codeigniter session

如何在codeigniter中为会话设置其他数据库

例如:

用户登录后。

用户x数据库abc 用户和数据库xyz

这是我的database.php

$db['default'] = [
'dsn'          => '', // Not Supported
'hostname'     => APP_DB_HOSTNAME,
'username'     => APP_DB_USERNAME,
'password'     => APP_DB_PASSWORD,
'database'     => APP_DB_NAME,
'dbdriver'     => defined('APP_DB_DRIVER') ? APP_DB_DRIVER : 'mysqli',
'dbprefix'     => '', // Not Supported
'pconnect'     => false,
'db_debug'     => (ENVIRONMENT !== 'production'),
'cache_on'     => false,
'cachedir'     => '',
'char_set'     => 'utf8',
'dbcollat'     => 'utf8_general_ci',
'swap_pre'     => '',
'encrypt'      => $db_encrypt,
'compress'     => false,
'stricton'     => false,
'failover'     => [],
'save_queries' => true,
];

和index.php     $ _SESSION ['DB'] ='gestor'; //默认的电子邮件选择数据库

和我的app-config.php

define('APP_DB_HOSTNAME', 'localhost');
define('APP_DB_USERNAME', 'root');
define('APP_DB_PASSWORD', '');
define('APP_DB_NAME', $_SESSION['DB']);

始终在“ gestor”中进行连接,不会进行数据库交换。

在验证用户的电子邮件之后,我想通过注册来更改数据库,登录后我要这样做:

$_SESSION['DB'] = get_base_email ($email);

1 个答案:

答案 0 :(得分:0)

您不能在不重新加载codeigniter实例的情况下重新定义APP_DB_NAME

&get_instance()

寻找另一种方式