通过控制器更改数据库文件

时间:2018-06-22 15:03:51

标签: php codeigniter

这是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中使用哪个值

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

是,在config文件夹中database.php文件中此数组的上方,创建了一个php函数,该函数检查特定位置上是否存在文件,如果不存在。现在,使数据库处于if条件。

“此文件是json,php,xml,文本”,其中包含您的用户的数据库信息,例如host,user,pass

因此,如果在特定位置有文件,则您的代码将读取该文件并从该文件中提取数据,然后根据需要将其用作变量。因此,如果未授权用户,则默认数据库处于活动状态;如果授权用户,则ci将使用if条件,并将连接到其他用户数据库。

希望有帮助

是的,同样的事情,我已经在Codeigniter中的一个多供应商项目中完成了,并且有效。但是我的文件登录有点复杂,因为用户太多,所以我只是将其放在会话中并使用了会话变量。