php框架CodeIgniter主從數(shù)據(jù)庫配置方法分析
本文實(shí)例講述了php框架CodeIgniter主從數(shù)據(jù)庫配置方法。分享給大家供大家參考,具體如下:
CodeIgniter簡稱CI是最流行的一個php MVC框架之一,本人講從實(shí)際項(xiàng)目使用中寫系列實(shí)戰(zhàn)經(jīng)驗(yàn),有別與其他的理論講解文章,會附上實(shí)戰(zhàn)流程和代碼。
本篇為配置多個數(shù)據(jù)庫,使用場景為集群,分布式,數(shù)據(jù)庫讀寫分離,多臺主從互備只有一臺為讀寫數(shù)據(jù)庫,其他為只讀數(shù)據(jù)庫。
工具/環(huán)境:
php開發(fā)環(huán)境
CodeIgniter
方法/步驟:
在config/database.php 里面配置多一個數(shù)據(jù)庫源,default為默認(rèn)的可以是localhost也可以是IP,writedb為可讀寫的數(shù)據(jù)庫,由于寫的為主從互備的需要用IP遠(yuǎn)程調(diào)用,本人配置為:
$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配置兩個數(shù)據(jù)源進(jìn)來,只需要讀的配置一個就可以了,當(dāng)然如果是只寫的也可以單獨(dú)配置寫的一個。
本人一個問題反饋的實(shí)例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)控制器的調(diào)用跟普通的一樣,只要引入Model就可以了,本人實(shí)例:
<?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); } } ?>
注意事項(xiàng):
① 由于寫的為主從互備的需要用IP遠(yuǎn)程調(diào)用
② default為默認(rèn)的可以是localhost也可以是IP
更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助。
- codeigniter自帶數(shù)據(jù)庫類使用方法說明
- 讓CodeIgniter數(shù)據(jù)庫緩存自動過期的處理的方法
- 新浪SAE云平臺下使用codeigniter的數(shù)據(jù)庫配置
- codeigniter數(shù)據(jù)庫操作函數(shù)匯總
- Codeigniter操作數(shù)據(jù)庫表的優(yōu)化寫法總結(jié)
- CodeIgniter針對數(shù)據(jù)庫的連接、配置及使用方法
- CodeIgniter框架數(shù)據(jù)庫事務(wù)處理的設(shè)計(jì)缺陷和解決方案
- CI框架(CodeIgniter)實(shí)現(xiàn)的數(shù)據(jù)庫增刪改查操作總結(jié)
- CodeIgniter框架數(shù)據(jù)庫基本操作示例
- CI(CodeIgniter)框架配置
- CodeIgniter基本配置詳細(xì)介紹
相關(guān)文章
php實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳下載實(shí)例代碼
這篇文章主要介紹了php實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳下載實(shí)例,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Laravel框架運(yùn)行出錯提示RuntimeException No application encryption ke
這篇文章主要介紹了Laravel框架運(yùn)行出錯提示RuntimeException No application encryption key has been specified.解決方法,涉及Laravel框架相關(guān)配置、設(shè)置與運(yùn)行操作技巧,需要的朋友可以參考下2019-04-04ThinkPHP提交表單時默認(rèn)自動轉(zhuǎn)義的解決方法
這篇文章主要介紹了ThinkPHP提交表單時默認(rèn)自動轉(zhuǎn)義的解決方法,可解決針對單引號和雙引號的自動轉(zhuǎn)移問題,提供了兩種解決方法供大家對比選擇,具有一定的實(shí)用價值,需要的朋友可以參考下2014-11-11WAMP環(huán)境中擴(kuò)展oracle函數(shù)庫(oci)
本文給大家介紹的是在windows環(huán)境下為php環(huán)境擴(kuò)展Oracle函數(shù)庫的過程,十分的詳細(xì),有需要的小伙伴可以參考下。2015-06-06數(shù)組任意位置插入元素,刪除特定元素的實(shí)例
下面小編就為大家?guī)硪黄獢?shù)組任意位置插入元素,刪除特定元素的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03