
2014-06-26 &nbs©p;| 發布者:梁國(g® €☆uó)芳 §≥| 查看(kàn):3320次
Thinkphp除了(le)在預先定義數(shù)據庫連接 ¶♠和(hé)實例化(huà)的(de)時(shí)候指定數(shù)據庫連↑φ₹接外(wài),我們還(hái)可(kě)以δ♣在模型操作(zuò)過程中動态的(de)& ₩♦切換數(shù)據庫,支持切換到(dào)相(xiàγ★™αng)同和(hé)不(bù)同的(de)數(shù)據庫類型。用(yòng)法ε'很(hěn)簡單, 隻需要(yào)調用(yòng≤∑)Model類的(de)db方法,用(yòng)法:
數(shù)據庫編号用(yòng)數(shù)字格式,對(duì)于已經調用(≈™yòng)過的(de)數(shù)據庫連接,是(shαγì)不(bù)需要(yào)再傳入數(shù)據庫連接信息的(de σ§),系統會(huì)自(zì)動記錄。對(duì)于默認的(de)數(shù≠δ)據庫連接,內(nèi)部的(de)數(s→ ∏✔hù)據庫編号是(shì)0,因此為(wèi)了(le)避免沖突,請(qǐngγ&≥)不(bù)要(yào)再次定義數(shù)據庫編号 ☆為(wèi)0的(de)數(shù)據庫配♦ 置。
數(shù)據庫配置的(de)定義方式和(hé)模型定義connectionφπσβ屬性一(yī)樣,支持數(shù)組、字符串以及調用(yòng)配λ¥×置參數(shù)三種格式。
Db方法調用(yòng)後返回當前的(de)模型實例,直接可₩♦±₹(kě)以繼續進行(xíng)模型的(de)其他(tā≥β)操作(zuò),所以該方法可(kě)以在查詢的(de)過程中¶±動态切換,例如(rú):
$this->db(1,"mysql://root:12345™¶π£6@localhost:3306/test")->query("查詢SQL");
該方法添加了(le)一(yī)個(gè)編号為(wèi±φ☆→)1的(de)數(shù)據庫連接,并自(zì)動切換到(dào)當♦δ 前的(de)數(shù)據庫連接。
當第二次切換到(dào)相(xiàng)同的(de)數(shù₹£±)據庫的(de)時(shí)候,就(jiù)不(¥≤bù)需要(yào)傳入數(shù)據庫連>接信息了(le),可(kě)以直接使用(yòng):
$this->db(1)->query("查詢SQL");
如(rú)果需要(yào)切換到(dào)默認的(de)數(shù)據庫連接₩™,隻需要(yào)調用(yòng):
$this->db(0);
如(rú)果我們已經在項目配置中定義了(le)其他(tā)的(de)數(shùδ ∑)據庫連接信息,例如(rú):
//數(shù)據庫配置1'DB_CONFIG1' = array('db_type' => 'mysql','db_user' => 'root','db_pwd' => '1234','db_host' => 'localhost','db_port' => '3306','db_name' => 'thinkphp'),//數(shù)據庫配置2'DB_CONFIG2' => 'mysql://root:1234@localhost:33↓±06/thinkphp';
我們就(jiù)可(kě)以直接在db方法中調用(yòng)配置進行(x™∑íng)連接了(le):
$this->db(1,"DB_CONFIG1")->query("查詢SQL");$this->db(2,"DB_CONFIG2")->query("查詢SQL");
如(rú)果切換數(shù)據庫之後,數(shù)據表和(hé)當前不(bù)±≈一(yī)緻的(de)話(huà),可(kě)以使用(yòng)table≈λ方法指定要(yào)操作(zuò)的(de)數(shù)據φ&♦♣表:
$this->db(1)->table("top_user")->find();
