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库当然负责非实时数据查询.因为在实际的应 ...
随机推荐
- 北大ACM(POJ1005-I Think I Need a Houseboat)
Question:http://poj.org/problem?id=1005问题点:计算半圆面积及向上取整. Memory: 256K Time: 0MS Language: C++ Result: ...
- Contoso 大学 - 8 – 实现继承
原文 Contoso 大学 - 8 – 实现继承 By Tom Dykstra, Tom Dykstra is a Senior Programming Writer on Microsoft's W ...
- IE浏览器打开 「兼容性视图」
有些IE上的网页控件需要打开兼容性视图才能使用,不知道是Javascript的原因,还是CSS的原因. 使用环境是用C语言配合boa服务器实现的CGI程序.
- tip 2:找最小公倍数之Boost
今天在codewars上面做了一题,kata5的,其中一个实现函数是几个数字的最小公倍数.自己的代码编译虽然也成功了,但是不够简介.看了别人的代码才发现可以直接调用Boost的math模块. 看eff ...
- Linux ---> 简单socket
#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> ...
- [大牛翻译系列]Hadoop(1)MapReduce 连接:重分区连接(Repartition join)
4.1 连接(Join) 连接是关系运算,可以用于合并关系(relation).对于数据库中的表连接操作,可能已经广为人知了.在MapReduce中,连接可以用于合并两个或多个数据集.例如,用户基本信 ...
- RFC822DateGMT
function RFC822DateGMT(dd: TDateTime): string; const Days:..] of string= ('Sun','Mon','Tue','Wed','T ...
- Spark Streaming揭秘 Day15 No Receivers方式思考
Spark Streaming揭秘 Day15 No Receivers方式思考 在前面也有比较多的篇幅介绍了Receiver在SparkStreaming中的应用,但是我们也会发现,传统的Recei ...
- MS也遵守规范了
CSS学的好不好,就看你对浏览器的兼容性处理的好不好. 拿opacity来说,本来写成opacity:0.3就完事了,但MS不来这套,它用filter,我们就不得不专门为它而 加上这么一大串(file ...
- 10张思维导图带你学习JavaScript
学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出10张JavaScript相关的思维导图. 思维导图小tips:思维导图又叫心智图,是表达发射性思维的有效的图形思维工具 ,它简单却 ...