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+ACCESS 文章管理程序代码
Jun 21 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
PHP函数getenv简介和使用实例
May 12 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
Thinkphp中的curd应用实用要点
Jan 04 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
跟我学Laravel之路由
2014/10/15 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
python实现数据图表
2017/07/29 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
毕业生自荐信如何写
2014/03/24 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
全陪导游词
2015/02/04 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
文艺晚会开场白
2015/05/29 职场文书
爱国电影观后感
2015/06/19 职场文书
护士工作心得体会
2016/01/25 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技