phpフレームワークCodeIgniterマスターデータベース構成方法分析
4121 ワード
この例では、phpフレームワークCodeIgniterのプライマリ・スレーブ・データベース構成方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.
CodeIgniter略称CIは最も流行しているphp MVCのフレームワークの一つで、本人は実際のプロジェクトの使用からシリーズの実戦経験を書くことを話して、他の理論と文章を説明して、実戦の流れとコードを添付します.
本編では、複数のデータベースを構成し、使用シーンがクラスタ、分散、データベースの読み書きが分離され、複数のホストが互いに準備されているのは1台だけが読み書きデータベースであり、その他は読み取り専用データベースである.
ツール/環境:
php開発環境CodeIgniter
方法/手順:
config/database.phpの中で1つのデータベースのソースを配置して、defaultはデフォルトでlocalhostでもIPでもよくて、writedbは読み書き可能なデータベースで、書く主は互いに準備する必要からIPで遠隔呼び出して、本人は配置します:
M(Model)が必要とするModelは2つのデータソースを構成して入ってきて、読む構成だけで1つでいいですが、もちろん書くだけでなく書く1つを個別に構成することもできます.
私の質問のフィードバックの例feedbackmodel.php:
C(Controller)コントローラの呼び出しは通常と同様にModelを導入すればよい,本人の例:
注意事項:
①書き込みがメインであるため、相互準備の必要からIPでリモートコールする
②defaultがデフォルトの場合はlocalhostでもIPでも構いません
CodeIgniterに関する詳細については、「codeigniter入門チュートリアル」、「CI(CodeIgniter)フレームワーク進級チュートリアル」、「php優秀開発フレームワーク総括」、「ThinkPHP入門チュートリアル」、「ThinkPHP常用方法総括」、「Zend FrameWork入門チュートリアル」、「phpオブジェクト向けプログラム設計入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
CodeIgniterフレームワークに基づくPHPプログラムの設計に役立つことを期待します.
CodeIgniter略称CIは最も流行しているphp MVCのフレームワークの一つで、本人は実際のプロジェクトの使用からシリーズの実戦経験を書くことを話して、他の理論と文章を説明して、実戦の流れとコードを添付します.
本編では、複数のデータベースを構成し、使用シーンがクラスタ、分散、データベースの読み書きが分離され、複数のホストが互いに準備されているのは1台だけが読み書きデータベースであり、その他は読み取り専用データベースである.
ツール/環境:
php開発環境CodeIgniter
方法/手順:
config/database.phpの中で1つのデータベースのソースを配置して、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は2つのデータソースを構成して入ってきて、読む構成だけで1つでいいですが、もちろん書くだけでなく書く1つを個別に構成することもできます.
私の質問のフィードバックの例feedbackmodel.php:
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を導入すればよい,本人の例:
load->model('feedbackmodel');
$this->load->helper('url');
$data['name'] = "feedback";
$this->load->view('feedbackview',$data);
}
}
?>
注意事項:
①書き込みがメインであるため、相互準備の必要からIPでリモートコールする
②defaultがデフォルトの場合はlocalhostでもIPでも構いません
CodeIgniterに関する詳細については、「codeigniter入門チュートリアル」、「CI(CodeIgniter)フレームワーク進級チュートリアル」、「php優秀開発フレームワーク総括」、「ThinkPHP入門チュートリアル」、「ThinkPHP常用方法総括」、「Zend FrameWork入門チュートリアル」、「phpオブジェクト向けプログラム設計入門チュートリアル」、「php+mysqlデータベース操作入門チュートリアル」および「php一般データベース操作テクニック要約」
CodeIgniterフレームワークに基づくPHPプログラムの設計に役立つことを期待します.