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 curl常见错误:SSL错误、bool(false)
Dec 28 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
PHP 透明水印生成代码
Aug 27 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
php输入流php://input使用浅析
Sep 02 PHP
PHP动态柱状图实现方法
Mar 30 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
详解php框架Yaf路由重写
Jun 20 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
PHP多进程通信-消息队列使用
Mar 08 PHP
PHP中str_split()函数的用法讲解
Apr 11 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
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
javascript call和apply方法
2008/11/24 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
js实现的复制兼容chrome和IE
2014/04/03 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
JS高级运动实例分析
2016/12/20 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
python简单分割文件的方法
2015/07/30 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
集团薪酬管理制度
2014/01/13 职场文书
学校门卫管理制度
2014/01/30 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
捐资助学倡议书
2014/04/15 职场文书
慰问信格式
2015/02/14 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
公司财务部岗位职责
2015/04/14 职场文书
旅游安全责任协议书
2016/03/22 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android