tp5(thinkPHP5)框架实现多数据库查询的方法
2019-01-11 12:02
1386 查看
本文实例讲述了tp5(thinkPHP5)框架实现多数据库查询的方法。分享给大家供大家参考,具体如下:
引言:
有时候一个管理后台,需要涉及到多个数据库。比如,商城管理、直播管理、消息管理等等,它们都有自己的数据库。这个时候,就需要去连接多个数据库,进行处理了。thinkphp可以支持多个数据库连接。
如何处理呢?
1.进行多个数据库的配置
默认会连接database.php中的数据库信息。
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK ] // +---------------------------------------------------------------------- // | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: liu21st <liu21st@gmail.com> // +---------------------------------------------------------------------- return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '', // 数据库名 'database' => '', // 数据库用户名 'username' => '', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '3306', // 数据库编码默认采用utf8 'charset' => '', // 数据库表前缀 'prefix' => '' ];
tp5会自动加载database.php
我们可以在extra文件夹中,再创建几个其他数据库的配置,比如database_mall,database_live,database_app等。
2.初始化
在model模块中进行初始化
<?php namespace app\admin\model; use think\Model; use think\Db; class LiveRecharge extends Model { protected $db_app; function __construct() { $this->db_app = Db::connect('database_app'); } }
3.使用
$this->db_app->table('order')->select();
这样就可以查询其他数据库中的数据了。
下面是全的代码:
<?php namespace app\admin\model; use think\Model; use think\Db; class LiveRecharge extends Model { protected $db_app; function __construct() { $this->db_app = Db::connect('database_app'); } // 获取分页 public function getList($customer_id = '',$nickname = '',$paytime = '',$pagesize = '') { $pagesize = $pagesize && $pagesize > 0 ? $pagesize : config('default_page_size'); $where = array(); $where['o.type'] = 3; if ($customer_id) { $where['o.uid'] = $customer_id; } if ($nickname) { $where['c.NickName'] = ['like','%'.$nickname.'%']; } if ($paytime) { $where['o.addtime'] = array(['>',$paytime.' 00:00'], ['<',$paytime.' 23:59']); } $result = $this->db_app->table('order') ->alias('o') ->where($where) ->join('customer c','o.uid = c.Id') ->field('o.*,c.NickName as nickname')->paginate($pagesize,false,[ 'query' => [ 'customer_id'=>$customer_id, 'nickname'=>$nickname, 'paytime'=>$paytime ] ]); $page = $result->render(); // 分页 $data = $result->all(); // 数据 foreach ($data as $k=>$v) { $data[$k]['diamond'] = intval($v['money'])*10; } // dump($this->db_app->getLastSql()); $total_diamond = $this->db_app->table('order')->where('type',3)->sum('money*10'); $outData['page'] = $page; $outData['data'] = $data; $outData['total_diamond'] = $total_diamond; return $outData; } }
小结:灵活运用model层,灵活的查询数据。
学会组织语言,学会撰写文档,学会归纳总结。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- thinkPHP3.0框架实现模板保存到数据库的方法
- thinkPHP框架实现多表查询的方法
- thinkphp框架下.查询数据库某表用户名字段是否唯一失效,解决方法
- ThinkPHP实现转换数据库查询结果数据到对应类型的方法
- thinkPHP5框架实现分页查询功能的方法示例
- tp5(thinkPHP5)框架连接数据库的方法示例
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 (2011-10-25 17:01:25)
- PHP Yii 框架的数据库操作笔记 一、查询集合的方法
- thinkPHP框架实现图像裁剪、缩放、加水印的方法
- 基于bbossgroups持久层框架实现数据库分页查询
- CI框架入门示例之数据库取数据完整实现方法
- ZendFramework框架实现连接两个或多个数据库的方法
- thinkPHP5(TP5)实现改写跳转提示页面的方法
- PHP查询数据库中满足条件的记录条数(两种实现方法)
- ThinkPHP实现多数据库连接的解决方法
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式'
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子)
- thinkPHP5实现的查询数据库并返回json数据实例
- ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子)