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弹出提示框并跳转到新页面即重定向到新页面
Jan 24 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
Mar 17 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP判断密码强度的方法详解
May 26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
PHP之header函数详解
Mar 02 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
如何分别全角和半角以避免乱码
2006/10/09 PHP
用php写的serv-u的web申请账号的程序
2006/10/09 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
JavaScript高级程序设计
2006/12/29 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
深入理解JavaScript系列(43):设计模式之状态模式详解
2015/03/04 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
js实现返回顶部效果
2017/03/10 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
python如何让类支持比较运算
2018/03/20 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
What is EJB
2016/07/22 面试题
工地门卫岗位职责
2013/12/30 职场文书
共产党员公开承诺书
2014/03/25 职场文书
小学作文评语大全
2014/04/21 职场文书
产品质量保证书范本
2015/02/27 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis