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 rewrite_module模块使用教程
Jan 10 PHP
PHP下10件你也许并不了解的事情
Sep 11 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
Laravel框架表单验证详解
Sep 04 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
php实现异步数据调用的方法
Dec 24 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
Jun 22 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
Jan 10 PHP
laravel5.1 ajax post 传值_token示例
Oct 24 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
PHP5 安装方法
2006/10/09 PHP
php 信息采集程序代码
2009/03/17 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
jQuery 遍历json数组的实现代码
2020/09/22 Javascript
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
浅析vue给不同环境配置不同打包命令
2018/08/17 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
python中文编码与json中文输出问题详解
2018/08/24 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
Python----数据预处理代码实例
2019/03/20 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python操作yaml说明
2020/04/08 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
自荐信的五个重要部分
2013/10/29 职场文书
自荐信范文
2013/12/10 职场文书
大学毕业生通用自我评价
2014/01/05 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
《花木兰》教学反思
2014/04/09 职场文书
计生专干事迹
2014/05/28 职场文书
先进人物事迹材料
2014/12/29 职场文书
信仰观后感
2015/06/03 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
mysql字符串截取函数小结
2021/04/05 MySQL