Thinkphp切换数据库

  切换数据库

若是你须要切换到另一个数据库(包括在相同和不一样的数据库类型之间切换)或者须要 链接多个数据库进行操做不一样的数据,就须要使用ThinkPHP提供的数据库切换方法,用法很简单, 只须要调用Model类的db方法,用法:
  1. Model->db("数据库编号","数据库配置");php

数据库编号用数字格式,对于已经调用过的数据库链接,是不须要再传入数据库链接信息的,系统会自动记录。对于默认的数据库链接,内部的数据库编号是0,所以为了不冲突,请不要再次定义数据库编号为0的数据库配置。
数据库配置的定义方式和模型定义connection属性同样,支持数组、字符串以及调用配置参数三种格式。
Db方法调用后返回当前的模型实例,直接能够继续进行模型的其余操做,因此该方法能够在查询的过程当中动态切换,例如:
  1. $this->db(1,"mysql://root:123456@localhost:3306/test")->query("查询SQL");mysql

该方法添加了一个编号为1的数据库链接,并自动切换到当前的数据库链接。
当第二次切换到相同的数据库的时候,就不须要传入数据库链接信息了,能够直接使用:
  1. $this->db(1)->query("查询SQL");sql

若是须要切换到默认的数据库链接,只须要调用:
  1. $this->db(0);thinkphp

若是咱们已经在项目配置中定义了其余的数据库链接信息,例如:
  1. //数据库配置1数据库

  2. 'DB_CONFIG1'= array(数组

  3. 'db_type'=>'mysql',ide

  4. 'db_user'=>'root',this

  5. 'db_pwd'=>'1234',google

  6. 'db_host'=>'localhost',url

  7. 'db_port'=>'3306',

  8. 'db_name'=>'thinkphp'

  9. ),

  10. //数据库配置2

  11. 'DB_CONFIG2'=>'mysql://root:1234@localhost:3306/thinkphp';

咱们就能够直接在db方法中调用配置进行链接了:
  1. $this->db(1,"DB_CONFIG1")->query("查询SQL");

  2. $this->db(2,"DB_CONFIG2")->query("查询SQL");

若是切换数据库以后,数据表和当前不一致的话,能够使用table方法指定要操做的数据表:
  1. $this->db(1)->table("top_user")->find();

咱们也能够直接用M方法切换数据库,例如:
  1. M("User","think_","mysql://root:123456@localhost:3306/test")->query("查询SQL");

或者
  1. M("User","think_","DB_CONFIG1")->query("查询SQL");

相关文章
相关标签/搜索