Codeigniter开发技巧:连接多个数据库(可实现DB读写分离)
在开发中,我们有时候会遇到在同一程序中链接多个数据库的需求,这对Codeigniter框架来说是很简单的,我们只需要在 database.php文件中配置少许参数即可。
默认情况下,CI配置的是链接一个数据库,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$db [ 'default' ][ 'hostname' ] = "localhost" ; $db [ 'default' ][ 'username' ] = "root" ; $db [ 'default' ][ 'password' ] = "" ; $db [ 'default' ][ 'database' ] = "first_database_name" ; $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; |
如果我们需要链接另一个数据库时,只需增加如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$db [ 'database_two' ][ 'hostname' ] = "localhost" ; $db [ 'database_two' ][ 'username' ] = "root" ; $db [ 'database_two' ][ 'password' ] = "" ; $db [ 'database_two' ][ 'database' ] = "secound_database_name" ; $db [ 'database_two' ][ 'dbdriver' ] = "mysql" ; $db [ 'database_two' ][ 'dbprefix' ] = "" ; $db [ 'database_two' ][ 'pconnect' ] = TRUE; $db [ 'database_two' ][ 'db_debug' ] = FALSE; $db [ 'database_two' ][ 'cache_on' ] = FALSE; $db [ 'database_two' ][ 'cachedir' ] = "" ; $db [ 'database_two' ][ 'char_set' ] = "utf8" ; $db [ 'database_two' ][ 'dbcollat' ] = "utf8_general_ci" ; $db [ 'database_two' ][ 'swap_pre' ] = "" ; $db [ 'database_two' ][ 'autoinit' ] = TRUE; $db [ 'database_two' ][ 'stricton' ] = FALSE; |
链接创建完成之后,在应用程序中我们就可以使用第二个数据库了,使用方法如下:
1
2
3
|
$secound_db = $this ->load->database( 'database_two' , TRUE); $query = $secound_db ->get( 'person' ); var_dump( $query );
|
Codeigniter开发技巧:连接多个数据库(可实现DB读写分离)的更多相关文章
- 通过Maven配置测试环境和开发环境连接不同的数据库
通过Maven配置测试环境和开发环境连接不同的数据库 作者及来源: 通灵宝玉 - 博客园 收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com ...
- MySQL/MariaDB数据库的PROXY实现读写分离
MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...
- 关系型数据库MySQL主从同步-读写分离
1.环境准备 我的数据库版本是MySQL 5.6 MySQL主机至少两个实例,可以是多实例,可以是多台主机 关闭selinux,关闭防火墙等基础优化 2.安装 yum -y install make ...
- 数据库中间件之mycat读写分离
mycat核心概念 逻辑库 mycat中定义.管理的数据库 逻辑表 逻辑库中包含的需分库分表存储的表 datanode 数据节点(分片节点),逻辑表分片的存放节点 datahost 数据主机(节点主机 ...
- Mycat数据库中间件对Mysql读写分离和分库分表配置
Mycat是一个开源的分布式数据库系统,不同于oracle和mysql,Mycat并没有存储引擎,但是Mycat实现了mysql协议,前段用户可以把它当做一个Proxy.其核心功能是分表分库,即将一个 ...
- laravel实现数据库多库配置,读写分离配置或者多读写分离配置
'connections' => array( //默认mysql配置,访问test库 'mysql' => array( 'driver' => 'mysql', 'host' = ...
- Yii框架 多数据库、主从、读写分离
Yii是可以在配置文件里声明多个数据库连接,然后通过Yii::app()->db1,Yii::app()->db2...来访问它们,并且也实现了更高级(自动)的主从数据库功能. 最近因为一 ...
- 从零开发分布式数据库中间件 二、构建MyBatis的读写分离数据库中间件
在上一节 从零开发分布式数据库中间件 一.读写分离的数据库中间件 中,我们讲了如何通过ThreadLocal来指定每次访问的数据源,并通过jdbc的连接方式来切换数据源,那么这一节我们使用我们常用的数 ...
- SpringMVC+ Mybatis 配置多数据源 + 自动数据源切换 + 实现数据库读写分离
现在大型的电子商务系统,在数据库层面大都采用读写分离技术,就是一个Master数据库,多个Slave数据库.Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询.因为在实际的应 ...
随机推荐
- ADO.NET笔记(一)XML导入导出和数据库
数据导出成XML文件 #region 数据导出成XML文件 string sql = "select Id, CallerNumber, TelNum, StartDateTime, End ...
- <转载>批处理之FOR语句祥解
批处理之FOR语句祥解 FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号) FOR 参数 %%变量名 IN ...
- Page 的生命周期学习小结(翻译兼笔记)
初始化(Initialization) 页面被请求时,第一个被执行的总是下面接着执行的是 接着是 然后是 恢复和加载(Restore and Load) 接下来的 ViewState 被取回后,接着 ...
- pl/sql developer 中文字段显示乱码
在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样 ...
- java学习笔记_GUI(5)
demo如何为不同的button创建对应的响应函数 import javax.swing.*; import java.awt.event.*; import java.awt.*; class My ...
- 在Centos6.5安装MySQL
在阐述安装过程之前一定要再写一句,Centos7上安装MySQL是默认安装的MariaDB,因为在Centos7中用MariaDB代替了mysql数据库. linux安装软件很简单,有的时候只有一句话 ...
- SVN全量备份+增量备份脚本
一.全量备份 环境:一台主SVN,一台备SVN(主要提供备份功能),后续可通过钩子脚本进行实时备份,后续发给大家. 工作原理:通过svn的hotcopy命令过行热备份,并进行一系列的检查,备份后通过r ...
- 【转】winform与web 按钮button去掉边框
ref:http://blog.csdn.net/wangzh300/article/details/5264316 WinForm的话 设置Button属性的FlatStyle为Flat,并且设置F ...
- Unity学习笔记(1):认识Unity
Unity是什么? Unity是patterns & practices团队开发的一个轻量级.可扩展的依赖注入容器,具有如下的特性: 它提供了创建(或者装配)对象实例的机制,而这些对象实例可能 ...
- linux 学习笔记2
vi 编辑命令并查看 i 插入 esc 转换模式 shift + : x 保存并退出 q 不保存 !强制保存 五个查看命令 cat / less / more / tail / hea ...