Yii2實現快速切庫操作

2021-09-26 23:03:32 字數 1829 閱讀 7290

開發中可能會遇到一些這樣的問題,比如本地乙個資料庫,線上乙個資料庫,測試環境乙個資料庫,協同辦公乙個資料庫,有時候需要進行不斷切換資料庫,這裡操作是在config資料夾下快速更改db.php的內容;

首先yii2中db.php檔案的內容是:

<?php

return [

'class' => 'yii\db\connection',

'dsn' => 'mysql:host=localhost;dbname=yii2basic',

'username' => 'root',

'password' => '',

'charset' => 'utf8',

// schema cache options (for production environment)

//'enableschemacache' => true,

//'schemacacheduration' => 60,

//'schemacache' => 'cache',

];

這裡我們在控制台命令的commands資料夾中建立乙個changedbcontroller.php資料夾,進行切庫命令的編寫

/**

* @author: bgsn

*/public function actiongetdb()

else if (false !== strpos( $dbcontent['dsn'],'127.0.0.2')) else if (false !== strpos( $dbcontent['dsn'],'127.0.0.3')) else if (false !== strpos($dbcontent['dsn'],'127.0.0.4'))

$message .= $nowtable;

$dbreturn = ;

$this->showmessage($message,$dbreturn);

if (!$dbreturn)

$conftext = "<?php

return [

'class' => 'yii\db\connection',

'dsn' => '".$dbreturn['table']."',

'username' => '".$dbreturn['user']."',

'password' => '".$dbreturn['password']."',

'charset' => 'utf8',

];";

if (file_put_contents($dbdir,$conftext)) else

} else

}/**

* @param $message

* @param $return

* @author: bgsn

*/private function showmessage($message,&$return)

if (!$return)

}

這裡在控制台輸入命令

php yii change-db/get-db:

cyb basic (develop) $ php yii change-db/get-db

當前庫為:.請選擇需要切換的庫:

1.127.0.0.1

2.127.0.0.2

3.127.0.0.3

4.127.0.0.4

5.退出

如果按其他按鍵,則繼續顯示該條資訊

這裡選擇要切換的庫此時就可以進行快速切庫操作

基礎YII2資料庫操作

注意 為了保持精度,從資料庫中取出的資料都被表示為字串,即使相應的資料庫列型別數值。當建立從乙個帶引數的sql乙個db命令,你應該總是使用繫結引數的方法來防止sql注入攻擊。引數繫結是通過預處理語句來實現。除了防止sql注入攻擊,也可通過一次準備sql語句和多次使用不同的引數執行它提高效能 yii ...

yii2實現彈框

1.首先引入命名空間 use yii bootstrap modal useyii helpers url echo html a 來乙個彈框 id create data toggle modal data target create modal 關聯下面model的id屬性 class btn ...

Yii2分庫的實現方法

工作遇到了分庫的問題,所謂分庫,不是單指是用多個資料庫,而是將單個資料庫拆分成多個邏輯功能平行的庫 通俗的舉例說就是講乙個資料庫拷貝多份,然後分給每個公司客戶乙個,它們各自用自己的 廢話不多說,下面介紹使用方法,此為本人原創,筆者架構水平經驗有限,僅供參考。一.首先,需要了解yii2使用多個資料庫的...