【发布时间】:2016-04-19 22:05:31
【问题描述】:
我对 codeigniter 很陌生,但正在处理有关多个 db 的问题。数据库位于同一主机上。
我已更改 database.php 文件以包含一个额外的组,除了“默认”新组称为“社交”
$active_group = 'default';
$active_group = 'social';
$active_record = TRUE;
$db['default']['hostname'] = 'xxxx';
$db['default']['username'] = 'xxx';
$db['default']['password'] = 'xxxx';
$db['default']['database'] = 'mysql';
$db['default']['dbdriver'] = 'mysqli';
$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['social']['hostname'] = 'xxx';
$db['social']['username'] = 'xxx';
$db['social']['password'] = 'xxx';
$db['social']['database'] = 'social';
$db['social']['dbdriver'] = 'mysqli';
$db['social']['dbprefix'] = '';
$db['social']['pconnect'] = TRUE;
$db['social']['db_debug'] = FALSE;
$db['social']['cache_on'] = FALSE;
$db['social']['cachedir'] = '';
$db['social']['char_set'] = 'utf8';
$db['social']['dbcollat'] = 'utf8_general_ci';
$db['social']['swap_pre'] = '';
$db['social']['autoinit'] = TRUE;
$db['social']['stricton'] = FALSE;
现在在我的代码中我调用 dbs
public function __construct()
{
$dbgroup = !file_exists(".git") ? "default" : "development";
$this->_time = microtime(true);
$this->_db =& DB($dbgroup);
$dbgroup = "social";
$this->_time = microtime(true);
$this->_dbs =& DB($dbgroup);
我做错了什么,为什么我不能使用 _dbs 从第二个数据库中获取数据?请记住......在这里完全编码新手!这不是我的日常工作:)
更新! 尝试按照 stackoverflow.com/a/8269596 中的描述在此函数中调用 db,但我仍然无法使其正常工作。
public function getUsers($userid = NULL)
{
if (empty($userid) ) {
$rs = $this->load->database('social', TRUE);
->select("id, username")
->from("user")
->get();
$userid = $rs->result();
return $userid;
}
elseif (isset($userid)) {
$rs = $this->load->database('social', TRUE);
->select("id, username")
->from("user")
->where('id', $userid)
->get();
$userid = $rs->result();
return $userid;
}
}
【问题讨论】:
-
您使用的是哪个 CodeIgniter 版本?
-
我建议查看stackoverflow.com/a/8269596,特别是这一行
$otherdb = $this->load->database('otherdb', TRUE); -
试过了,但无法正常工作
if (empty($userid) ) { $rs = $this->load->database('social', TRUE); ->select("id, username") ->from("pricecloud_user") ->get(); $userid = $rs->result(); return $userid; } elseif (isset($userid)) { $rs = $this->load->database('social', TRUE); ->select("id, username") ->from("user") ->where('id', $userid) ->get(); $userid = $rs->result(); return $userid; } -
我看不懂,请用代码更新您的问题,以便更容易阅读。谢谢
-
哦,对不起,有道理...刚刚更新了问题
标签: php mysql codeigniter