[英]GET SESSION value in database.php in codeigniter
我在codeigniter中创建了一个项目,但是该项目具有多个DBS。 它工作正常,但我希望根据用户表的详细信息来调用一个数据库
在database.php文件中,我希望加载会话用户名以进行查询
我做了以下
$autoload['libraries'] = array('session');
if(!empty($this->session->userdata('username')))
$username_c = $this->session->userdata('username');
我究竟做错了什么?
正如@Tpojka在评论中所说,您不应该在database.php
这样做。 您可以动态选择数据库并在查询之前获取实例。 在这里检查。
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "db_one";
$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;
$db['second_db']['hostname'] = "localhost";
$db['second_db']['username'] = "root";
$db['second_db']['password'] = "";
$db['second_db']['database'] = "db_two";
$db['second_db']['dbdriver'] = "mysql";
$db['second_db']['dbprefix'] = "";
$db['second_db']['pconnect'] = TRUE;
$db['second_db']['db_debug'] = FALSE;
$db['second_db']['cache_on'] = FALSE;
$db['second_db']['cachedir'] = "";
$db['second_db']['char_set'] = "utf8";
$db['second_db']['dbcollat'] = "utf8_general_ci";
$db['second_db']['swap_pre'] = "";
$db['second_db']['autoinit'] = TRUE;
$db['second_db']['stricton'] = FALSE;
在您的模型中
public function get_profile() {
if(!empty($this->session->userdata('username'))) {
$username_c = $this->session->userdata('username');
$DB2 = $this->load->database('second_db', TRUE); // true to get db instance
return $DB2->select("*")->from("user")->get()->row(); // query from second DB
}
$this->db->select("*")->from("user")->get()->row(); // query from default DB
}
希望对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.