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运算符的知识大全
Nov 03 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
Jun 05 PHP
PHP生成等比缩略图类和自定义函数分享
Jun 25 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
php读取csv数据保存到数组的方法
Jan 03 PHP
PHP开发注意事项总结
Feb 04 PHP
php导入模块文件分享
Mar 17 PHP
PHP实现事件机制实例分析
Jun 26 PHP
php 防护xss,PHP的防御XSS注入的终极解决方案
Apr 01 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 文件上传全攻略
2010/04/28 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
2019/10/08 jQuery
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python实现将DOC文档转换为PDF的方法
2015/07/25 Python
python机器学习之神经网络(一)
2017/12/20 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Django websocket原理及功能实现代码
2020/11/14 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
卫校护理专业毕业生求职信
2013/11/26 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server