ThinkPHP跨库调用
July 31, 2015
用到了ThinkPHP框架的跨库调用,也就是多数据库调用。 综合文档,查看了下源码后写出的一种扩展性比较好的封装方法,可以调用多个数据库。
新建一个CommonModel模型
connection = C('db_connct_1');
*/
public function __construct($name='',$tablePrefix='',$connection='')
{
if(APP_DEBUG){//调试模式开启
$this->connection = [
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => 'chengxiaobai',
'db_host' => 'debug.chengxiaobai.cn',
'db_port' => '3306',
'db_name' => 'chengxiaobai',
'db_charset' => 'utf8mb4',
];
}else{//线上环境
$this->connection = [
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => 'chengxiaobai',
'db_host' => 'db.chengxiaobai.cn',
'db_port' => '3306',
'db_name' => 'chengxiaobai',
'db_charset' => 'utf8mb4',
];
}
parent::__construct($name,$tablePrefix,$connection);
}
}
其他需要跨库的model继承这个model就好了
limit(10)->select());
}
}
很多共用的操作有可以放在CommonModel里面进行了。
比如对取出来的数据进行统一的类型转换,PHP做后台开发的时候取出来的都是String类型的,对于android和ios这种强类型开发语言的客户端来说,那就需要转换类型再返回给客户端。
本作品由 程小白 创作,采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可,可自由转载、引用但需署名作者且注明文章出处。
原文地址:https://www.chengxiaobai.cn/php/thinkphp-cross-library-call.html