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 相关文章推荐
浅谈apache和nginx的rewrite的区别
Feb 22 PHP
php中autoload的用法总结
Nov 08 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
php去除二维数组的重复项方法
Nov 03 PHP
Symfony控制层深入详解
Mar 17 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
初识PHP
2014/09/28 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
中止javascript执行的方法
2014/02/14 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
Json解析的方法小结
2016/06/22 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
Python实现的单向循环链表功能示例
2017/11/10 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
毕业自荐书
2013/12/09 职场文书
教师个人鉴定材料
2014/02/08 职场文书
表决心的诗句大全
2014/03/11 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
SQL CASE 表达式的具体使用
2022/03/21 SQL Server
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript