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面向对象编程快速入门
Dec 14 PHP
小偷PHP+Html+缓存
Dec 20 PHP
php5 图片验证码实现代码
Dec 11 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php构造函数与析构函数
Apr 23 PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php微信公众号开发之二级菜单
Oct 20 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
日本十大惊悚动漫
2020/03/04 日漫
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
2016/12/29 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
js断点调试经验分享
2017/12/08 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
使用python实现接口的方法
2017/07/07 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
python3的输入方式及多组输入方法
2018/10/17 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
ORLY官网:美国专业美甲一线品牌
2019/12/11 全球购物
通用C#笔试题附答案
2016/11/26 面试题
工厂仓管员岗位职责
2014/01/01 职场文书
20岁生日感言
2014/01/13 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
“四风”问题整改措施和努力方向
2014/09/20 职场文书
药店收银员岗位职责
2015/04/07 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
重阳节简报
2015/07/20 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android