thinkphp5 数据库读写分离

2018-06-05  本文已影响0人  小山人

thinkphp5 数据库读写分离

环境

项目在本地的wamp中,主数据库ip:192.168.1.114 从服务器ip:192.168.1.115(数据库服务器为之前笔记配置的主从服务器)

PS:操作方法与laravel相同,详情可查看laravel5.5 mysql数据库读写分离

配置database.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '192.168.1.114,192.168.1.115', //默认第一个为主数据库
    // 数据库名
    'database'        => 'test',  //如果两个数据库相同,可就写一个效果等同:'test,test'
    // 用户名
    'username'        => 'root', //如果两个数据库相同,可就写一个效果等同:'root,root'
    // 密码
    'password'        => '123456', //如果两个数据库相同,可就写一个效果等同:'123456,123456'
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => '',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 1,      //1为分布式数据库
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => true,   //读写分离
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

新建User模型

<?php
namespace app\common\model;

use think\Model;

class User extends Model {

}

测试控制器

<?php

namespace app\index\controller;

use app\common\model\User;

class Index {
    public function index() {
        return '你好';
    }

    //查询数据
    public function select() {
        $res = User::all();
        foreach ($res as $val){
            dump($val->toArray());
        }
    }
    
    //添加数据
    public function insert($p) {
        $input = [
            'user_phone' => '1234567890'.$p,
            'user_nicename' => $p,
            'user_email' =>  '123'.$p."@123.com",
            'user_pwd' => md5($p)
        ];
        $res = User::create($input);
        dump($res->toArray());
    }
}
上一篇下一篇

猜你喜欢

热点阅读