美文网首页
thinkphp5 数据库读写分离

thinkphp5 数据库读写分离

作者: 小山人 | 来源:发表于2018-06-05 15:26 被阅读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());
        }
    }
    

    相关文章

      网友评论

          本文标题:thinkphp5 数据库读写分离

          本文链接:https://www.haomeiwen.com/subject/mfzpsftx.html