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 相关文章推荐
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
apache mysql php 源码编译使用方法
May 03 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php学习笔记之面向对象
Nov 08 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
Yii使用smsto短信接口的函数demo示例
Jul 13 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
Sep 14 PHP
php表单处理操作
Nov 16 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
PHP7 弃用功能
Mar 09 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正则表达式(regar expression)
2011/09/10 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP 错误处理机制
2015/07/06 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
dwr spring的集成实现代码
2009/03/22 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python lxml模块安装教程
2015/06/02 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
Python中return self的用法详解
2018/07/27 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python超时重新请求解决方案
2019/10/21 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
校园新闻广播稿
2014/01/10 职场文书
安全大检查反思材料
2014/01/31 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
初中重阳节活动总结
2015/05/05 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
Python实现双向链表基本操作
2022/05/25 Python