hinkPHP提供了完善的读写分离功能,不需要手动切换数据库。什么时候读,什么时候写系统会自动判断。读数据时系统会操作从服务器,而写数据时系统会操作主服务器。最终由数据库实现同步,这就是一个最典型的数据库读写分离,下以将配置好的两台主从数据库为例,详细介绍实现读写分离。
首先打开项目下的数据库配置文件,修改其中的数据库连接参数。要实现多数据库连接,只需要使用","分隔多台服务器即可,如以下代码所示。
- <?php
- return array(
-
- 'URL_CASE INSENSITIVE' =>true,
- "DB_DEPLOY_TYPE"=>1,
- 'DB_RW_SEPARATE'=>true,
- 'DB_TYPE' => 'mysql',
- 'DB_HOST' => '192.168.2.1,192.168.2.10',
- 'DB_NAME' => 'tp',
- 'DB_USER' => 'root,root',
- 'DB_PWD' => 'root , root',
- 'DB_PREFIX' => 'tpk_',
- "project_name"=>"项目名称",
- 'TMPL_L_DELIM' => '<!--{',
- 'TMPL_R_DELIM' => '}-->',
- 'LAYOUT_ON'=>true,
- );
- ?>
- <span style="color: rgb(50, 50, 50); font-family: "Century Gothic", "Microsoft yahei"; font-size: 16px;">配置文件配置好后,现在就可以在动作中测试读写分离了,如以下代码所示。</span>
- <span style="color: rgb(50, 50, 50); font-family: "Century Gothic", "Microsoft yahei"; font-size: 16px;"></span><pre code_snippet_id="2338430" snippet_file_name="blog_20170417_3_7578327" name="code" class="php"><?php
- class IndexAction extends Action {
-
- public function index(){
- $articleObj=M("Article");
- $rows=$articleObj->select();
- dump($rows);
- }
-
- public function add() {
- $articleObj=M("Article");
- $data["title"]="读写分离测试"i
- $data["add_user"]="ceiba";
- $data["area"]="shanghai";
- $data["category"]=" 教育新闻";
- $data["content"]="读写分离测试---内容";
- if ($articleObj->add($data)) {
- $this->success("数据添加成功") ;
- }else {
- $this->error("数据添加失败");
- }
- }
- }
- ?>
- </pre><pre code_snippet_id="2338430" snippet_file_name="blog_20170417_4_7196643" name="code" class="php"></pre>来源:http:
- <br>
- <p></p>
- <pre></pre>
- <br>
- <br>
- <p></p>