这是database.php
文件夹中的config
$tnsname = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.59)(PORT = 3021))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xe)))';
$db['default'] = array(
'dsn' => '',
'hostname' => $tnsname,
'username' => 'user',
'password' => '******',
'database' => '',
'dbdriver' => 'oci8',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
如何通过$tnsname
更改变量值controller
?
当用户在系统中进行身份验证并在登录名中选择一个代码时,该代码将指示该变量($tnsname
中使用哪个值
有什么主意吗?
答案 0 :(得分:0)
是,在config文件夹中database.php文件中此数组的上方,创建了一个php函数,该函数检查特定位置上是否存在文件,如果不存在。现在,使数据库处于if条件。
“此文件是json,php,xml,文本”,其中包含您的用户的数据库信息,例如host,user,pass
因此,如果在特定位置有文件,则您的代码将读取该文件并从该文件中提取数据,然后根据需要将其用作变量。因此,如果未授权用户,则默认数据库处于活动状态;如果授权用户,则ci将使用if条件,并将连接到其他用户数据库。
希望有帮助
是的,同样的事情,我已经在Codeigniter中的一个多供应商项目中完成了,并且有效。但是我的文件登录有点复杂,因为用户太多,所以我只是将其放在会话中并使用了会话变量。