TP3 2資料庫轉換

2021-08-07 14:09:19 字數 1308 閱讀 6698

除了在預先定義資料庫連線和例項化的時候指定資料庫連線外,我們還可以在模型操作過程中動態的切換資料庫,支援切換到相同和不同的資料庫型別。用法很簡單, 只需要呼叫model類的db方法,用法:

model->db("資料庫編號","資料庫配置");

資料庫編號用數字格式,對於已經呼叫過的資料庫連線,是不需要再傳入資料庫連線資訊的,系統會自動記錄。對於預設的資料庫連線,內部的資料庫編號是0,因此為了避免衝突,請不要再次定義資料庫編號為0的資料庫配置。

資料庫配置的定義方式和模型定義connection屬性一樣,支援陣列、字串以及呼叫配置引數三種格式。

db方法呼叫後返回當前的模型例項,直接可以繼續進行模型的其他操作,所以該方法可以在查詢的過程中動態切換,例如:

$this->db(1,"mysql://root:123456@localhost:3306/test")->query("查詢sql");
該方法新增了乙個編號為1的資料庫連線,並自動切換到當前的資料庫連線。

當第二次切換到相同的資料庫的時候,就不需要傳入資料庫連線資訊了,可以直接使用:

$this->db(1)->query("查詢sql");
如果需要切換到預設的資料庫連線,只需要呼叫:

$this->db(0);
如果我們已經在專案配置中定義了其他的資料庫連線資訊,例如:

//資料庫配置1

'db_config1' = array(

'db_type' => 'mysql',

'db_user' => 'root',

'db_pwd' => '1234',

'db_host' => 'localhost',

'db_port' => '3306',

'db_name' => 'thinkphp'

),//資料庫配置2

'db_config2' => 'mysql://root:1234@localhost:3306/thinkphp';

我們就可以直接在db方法中呼叫配置進行連線了:

$this->db(1,"db_config1")->query("查詢sql");

$this->db(2,"db_config2")->query("查詢sql");

如果切換資料庫之後,資料表和當前不一致的話,可以使用table方法指定要操作的資料表:

$this->db(1)->table("top_user")->find();

tp3 2中配置鏈結多個資料庫

config.php return array 配置項 配置值 快取 data cache type memcache memcache host tcp data cache time 3600 default controller index 預設控制器名稱 default action ind...

tp3 2復合查詢

where member.ming array like key where xueyuan.xingming array like key where xueyuan.dizhi array like key where xueyuan.shoujihao array like key where...

tp3 2自動驗證

namespace home model usethink model class usermodel extends model x u 使用者名稱長度為3 18位字元 2 password require 密碼不能為空 password a za z 0 9 a za z0 9 密碼格式不對 必...