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");

相關文章
相關標籤/搜索