用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7718|回复: 5
收起左侧

CI支持运行时使用不同的数据库吗?

[复制链接]
发表于 2008-3-19 15:32:05 | 显示全部楼层 |阅读模式
db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "password";
$db['default']['database'] = "mydb";
$db['default']['dbdriver'] = "mysql";
……

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "password";
$db['test']['database'] = "testdb";
$db['test']['dbdriver'] = "mysql";
……

我在controller或者类中需要同时对两个数据库进行操作,CI支持这样的操作吗?
发表于 2008-3-19 15:41:31 | 显示全部楼层
支持,可以一次使用多个数据库,请参考中文手册。
 楼主| 发表于 2008-3-19 17:09:38 | 显示全部楼层
原帖由 Hex 于 2008-3-19 15:41 发表
支持,可以一次使用多个数据库,请参考中文手册。


中文手册中有吗?以下是我找的内容:
我们使用多维数组的原因是为了让你随意的存储多个连接值的设置。举例:如果你运行多个环境(development:开发、production:制作、test:测试 等等..),你能为每个环境建立独立的连接组,并在组直接进行切换。举例,设置一个"test"环境,你可以这样做:
$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";
那么,告诉系统使用"test"组,你可以设置位于配置文件中的变量:
$active_group = "test";
注意: "test"的名字是任意的,这可以让你自由设置,我们的主要连接默认使用"default"这个名字,当然,您可以基于您的项目为它起一个更有意义的名字。


如果我没理解错的话,意思是要么使用$db['default'], 要么使用$db['test'],二者取其一,我希望是可以在代码中随意选择DB。
如果用户只要提问题,版主就让查手册,那么除非CI很多解决不了的BUG,咱们就不用在这里讨论了。

不排除很多人不的确不喜欢看手册,但也不能说明提问的人都没有看过手册。表述和理解产生分歧也是会产生问题的,这不就需要沟通吗?
发表于 2008-3-19 18:14:54 | 显示全部楼层
呵呵,很抱歉,我没有给出链接。

http://codeigniter.org.cn/user_guide/database/connecting.html

"连接多数据库"部分,请仔细查看,谢谢!


PS: 您参考的章节不对,数据库相关内容都要在数据库章节里查找。
 楼主| 发表于 2008-3-19 22:02:14 | 显示全部楼层
Thanks.
就是我——想要的
发表于 2008-3-19 23:34:07 | 显示全部楼层
很乐意为您效劳!

本版积分规则