• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    tp5(thinkPHP5)框架实现多数据库查询的方法

    本文实例讲述了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程序设计有所帮助。

    您可能感兴趣的文章:
    • tp5.1框架数据库子查询操作实例分析
    • tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
    • tp5.1 框架数据库高级查询技巧实例总结
    • ThinkPHP5.1框架数据库链接和增删改查操作示例
    • PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
    • PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
    • ThinkPHP实现多数据库连接的解决方法
    • thinkPHP5实现的查询数据库并返回json数据实例
    • tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
    • tp5(thinkPHP5)操作mongoDB数据库的方法
    • thinkPHP5实现数据库添加内容的方法
    • tp5.1 框架数据库-数据集操作实例分析
    上一篇:tp5框架使用composer实现日志记录功能示例
    下一篇:tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    tp5(thinkPHP5)框架实现多数据库查询的方法 tp5,thinkPHP5,框架,实现,多,