如何在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);
答案 0 :(得分:0)
您不能在不重新加载codeigniter实例的情况下重新定义APP_DB_NAME
&get_instance()
寻找另一种方式