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+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
PHP伪静态写法附代码
Jun 20 PHP
PHP6 mysql连接方式说明
Feb 09 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
php写入txt乱码的解决方法
Sep 17 PHP
基于PHP实现生成随机水印图片
Dec 09 PHP
PHP7变量处理机制修改
Mar 09 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开发GUI
2006/10/09 PHP
PHP Document 代码注释规范
2009/04/13 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
理解JavaScript原型链
2016/10/25 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
Python3.7安装pyaudio教程解析
2020/07/24 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
大学三年计划书范文
2014/04/30 职场文书
大型公益活动策划方案
2014/08/20 职场文书
工厂标语大全
2014/10/06 职场文书