php - Codeigniter - 多个数据库连接 - 本地和远程

标签 php mysql database codeigniter

我目前正在构建一个应用程序,用户可以通过该应用程序输入自己的个人数据库连接来利用其 MySQL 数据库中的数据。

这意味着我将有两个数据库连接 - 我的本地连接(管理 session 等)和用户远程连接。

任何人都可以建议管理这两个连接的最佳方法吗?我查看了数据库组 - http://codeigniter.com/user_guide/database/connecting.html但是用户数据库连接将由 session 变量设置,因此我无法将远程数据库的详细信息放入配置文件中。

我尝试在我的类(class)中手动设置一个新的数据库组,例如:

        $db['foreign']['hostname'] = $this->session->userdata('hostname');
        $db['foreign']['username'] = $this->session->userdata('dbuser');
        $db['foreign']['password'] = $this->session->userdata('dbpassword');
        $db['foreign']['database'] = $this->session->userdata('dbname');
        $db['foreign']['dbdriver'] = "mysql";
        $db['foreign']['dbprefix'] = "";
        $db['foreign']['pconnect'] = FALSE;
        $db['foreign']['db_debug'] = TRUE;
        $db['foreign']['cache_on'] = FALSE;
        $db['foreign']['cachedir'] = "";
        $db['foreign']['char_set'] = "utf8";
        $db['foreign']['dbcollat'] = "utf8_general_ci";

        $foreign_db = $this->load->database('foreign', TRUE);

但是我在负载线上遇到异常:

You have specified an invalid database connection group.

谁能告诉我如何实现这一目标?

非常感谢,本。

最佳答案

为了使用组调用语法,必须在配置文件中定义组。 CI 包括将配置直接传递到数据库加载器的能力。 (注意:这可能只是 CI 2+ 功能)

你想要这样的东西:

$db['hostname'] = $this->session->userdata('hostname');
$db['username'] = $this->session->userdata('dbuser');
$db['password'] = $this->session->userdata('dbpassword');
$db['database'] = $this->session->userdata('dbname');
$db['dbdriver'] = "mysql";
$db['dbprefix'] = "";
$db['pconnect'] = FALSE;
$db['db_debug'] = TRUE;
$db['cache_on'] = FALSE;
$db['cachedir'] = "";
$db['char_set'] = "utf8";
$db['dbcollat'] = "utf8_general_ci";

$foreign_db = $this->load->database($db, TRUE);

关于php - Codeigniter - 多个数据库连接 - 本地和远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558027/

相关文章:

php - 使用 PHP 将 JSON 对象中的元素插入数据库

mysql - Sqlite 还是 MySql?如何决定?

android - 我应该如何使用 Android 删除 SQLite 中的链接行?

database - 无法在 PostgreSQL 中更新 View "routines"

SQL查询中的PHP整数值

php - 是否可以使用正则表达式在数组中使用 php 进行搜索

php - 时间戳或根据时区更改时间

javascript - 多用途和可重用的 JavaScript 倒数计时器

mysql - Rails 中具有不同列值的所有记录的组合

php - MySQL 错误 "Unknown column "sorting"in "where clause"very very odd