php - 连接到第二个数据库在 CodeIgniter 中不起作用

标签 php database codeigniter phpbb phpbb3

我正在尝试将 phpbb3 与代码点火器集成。我非常成功,但我正在尝试访问论坛数据库,但它无法正常工作。这是目前我的数据库文件中的内容。

/** FORUM DATABASE **/

$active_group = 'forum';
$active_record = TRUE;

$db['forum']['hostname'] = 'localhost';
$db['forum']['username'] = 'root';
$db['forum']['password'] = 'root';
$db['forum']['database'] = 'phpbb';
$db['forum']['dbdriver'] = 'mysqli';
$db['forum']['dbprefix'] = 'phpbb';
$db['forum']['pconnect'] = FALSE;
$db['forum']['db_debug'] = TRUE;
$db['forum']['cache_on'] = FALSE;
$db['forum']['cachedir'] = '';
$db['forum']['char_set'] = 'utf8';
$db['forum']['dbcollat'] = 'utf8_general_ci';
$db['forum']['swap_pre'] = '';
$db['forum']['autoinit'] = TRUE;
$db['forum']['stricton'] = TRUE;

/** CMS DATABASE **/
$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'cms';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$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'] = TRUE;

这是一个尝试访问数据库的方法。它一直返回 null。

public function getUserGroupMembership()
{
  $forum = $this->load->database('forum',TRUE);
  global $table_prefix;
  $userId = $this->_user->data['user_id'];
  $this->forum->select('g.group_name');
  $this->forum->from($table_prefix . 'groups g');
  $this->forum->from($table_prefix . 'user_group u');
  $this->forum->where('u.user_id', $userId);
  $this->forum->where('u.group_id', 'g.group_id', FALSE);
  $query = $this->forum->get();
  foreach ($query->result_array() as $group)
  {
      $groups[] = $group['group_name'];
  }
  return $groups;
}

最佳答案

数据库对象加载在$forum 变量中,但是$this->forum 变量用于与数据库交互。它不会工作,因为 $forum 是一个局部变量,而 $this->forum 是一个类变量,它们是不一样的。要修复您的代码,您应该将 $forum 更改为 $this->forum 或将 $this->forum 更改为 $forum。您不能同时使用两者。

关于php - 连接到第二个数据库在 CodeIgniter 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14674883/

相关文章:

php - 使用 uri 段获取值

php - 将 div 位置和大小属性插入 MySQL 数据库。如何使用 PHP 收集信息?

PHP 脚本在页面加载时自动运行

php - Magento - 检查管理员和客户是否登录

mysql - 无法在 kubernetes 数据库中添加 .sql 文件

php - 如何使用 grocery set_relation 函数在不同列中显示来自两个不同表的内容

javascript - 如何将变量从 PHP 传递到 Javascript

php - wampserver 2 - 显示在线但不工作

java - hibernate 加载不加载整棵树

asp.net-mvc - ASP.NET MVC - 数据库的替代品