thinkphp3.2同时连接两个数据库

936 阅读1分钟

因项目需求,需要用到连接两个库,所以封装了个方法,实例如下:

tp3.2手册连接数据库

在公共的function.php加入封装的方法

function getCrmModel($name) 
{
    // new的model可以根据自己的需求去更改
    return new \Home\Model\CrmModel($name);
}

model代码

<?php

namespace Home\Model;

class CrmModel extends BaseModel
{
    public function _initialize(){
        parent::_initialize();
        $this->connection = array(
            'db_type' => C('CRM_DB.DB_TYPE'),
            'db_user' => C('CRM_DB.DB_USER'),
            'db_pwd' => C('CRM_DB.DB_PWD'),
            'db_host' => C('CRM_DB.DB_HOST'),
            'db_port' => C('CRM_DB.DB_PORT'),
        );

        $this->dbName = C('CRM_DB.DB_NAME');
        $this->tablePrefix = C('CRM_DB.DB_PREFIX');
    }

}

在公共的config中添加配置信息

//第二个数据库配置信息
'CRM_DB'=>array(
    'DB_TYPE' => 'mysql', // 数据库类型
    'DB_HOST' => 'localhost', // 服务器地址
    'DB_NAME' => 'test', // 数据库名
    'DB_USER' => 'root', // 用户名
    'DB_PWD' => 'root', // 密码
    'DB_PORT' => '3306', // 端口
    'DB_PREFIX' => 'test_', // 前缀
),