php框架CodeIgniter主从数据库配置方法分析


Posted in PHP onMay 25, 2018

本文实例讲述了php框架CodeIgniter主从数据库配置方法。分享给大家供大家参考,具体如下:

CodeIgniter简称CI是最流行的一个php MVC框架之一,本人讲从实际项目使用中写系列实战经验,有别与其他的理论讲解文章,会附上实战流程和代码。

本篇为配置多个数据库,使用场景为集群,分布式,数据库读写分离,多台主从互备只有一台为读写数据库,其他为只读数据库。

工具/环境:

php开发环境
CodeIgniter

方法/步骤:

在config/database.php 里面配置多一个数据库源,default为默认的可以是localhost也可以是IP,writedb为可读写的数据库,由于写的为主从互备的需要用IP远程调用,本人配置为:

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'default_username';
$db['default']['password'] = 'default_password';
$db['default']['database'] = 'default_dbname';
$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;
$db['writedb']['hostname'] = '202.187.194.160';
$db['writedb']['username'] = 'writedb_name';
$db['writedb']['password'] = 'writedb_password';
$db['writedb']['database'] = 'writedb_db';
$db['writedb']['dbdriver'] = 'mysql';
$db['writedb']['dbprefix'] = '';
$db['writedb']['pconnect'] = TRUE;
$db['writedb']['db_debug'] = TRUE;
$db['writedb']['cache_on'] = FALSE;
$db['writedb']['cachedir'] = '';
$db['writedb']['char_set'] = 'utf8';
$db['writedb']['char_names'] = 'utf8';
$db['writedb']['dbcollat'] = 'utf8_general_ci';
$db['writedb']['swap_pre'] = '';
$db['writedb']['autoinit'] = TRUE;
$db['writedb']['stricton'] = FALSE;

M(Model)需要用到的Model配置两个数据源进来,只需要读的配置一个就可以了,当然如果是只写的也可以单独配置写的一个。

本人一个问题反馈的实例feedbackmodel.php:

<?php
class Feedbackmodel extends CI_Model {
function __construct() {
parent::__construct ();
$this->db = $this->load->database ('default',true);
$this->writedb = $this->load->database ('writedb',true);
}
public function add($data)
{
$this->writedb->insert('feedback',$data);
if($this->writedb->affected_rows() == 1){
return true;
}
return false ;
}
}
?>

C(Controller)控制器的调用跟普通的一样,只要引入Model就可以了,本人实例:

<?php 
class Feedback extends CI_Controller {
function __construct(){
parent::__construct();
}
function index(){
$this->load->model('feedbackmodel'); 
$this->load->helper('url'); 
$data['name'] = "feedback";
$this->load->view('feedbackview',$data);
}
}
?>

注意事项:

① 由于写的为主从互备的需要用IP远程调用

② default为默认的可以是localhost也可以是IP

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
用header 发送cookie的php代码
Mar 16 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
php通过字符串调用函数示例
Mar 02 PHP
Yii操作数据库的3种方法
Mar 11 PHP
php switch语句多个值匹配同一代码块应用示例
Jul 29 PHP
Zend Framework入门知识点小结
Mar 19 PHP
基于PHP制作验证码
Oct 12 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
Laravel 队列使用的实现
Jan 08 PHP
thinkphp5 redis缓存新增方法实例讲解
Mar 24 PHP
CodeIgniter框架数据库基本操作示例
May 24 #PHP
PHP实现生成数据字典功能示例
May 24 #PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 #PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 #PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 #PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 #PHP
You might like
php ss7.5的数据调用 (笔记)
2010/03/08 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
python中with用法讲解
2020/02/07 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
python3中for循环踩过的坑记录
2020/12/14 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
销售简历自我评价
2014/01/24 职场文书
信息技术培训感言
2014/03/06 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
西游记读书笔记
2015/06/25 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
八年级作文之感恩
2019/11/22 职场文书