- 相關(guān)推薦
怎樣實(shí)現(xiàn)yii2數(shù)據(jù)庫(kù)讀寫分離配置
開始使用數(shù)據(jù)庫(kù)首先需要配置數(shù)據(jù)庫(kù)連接組件,通過添加 db 組件到應(yīng)用配置實(shí)現(xiàn)("基礎(chǔ)的" Web 應(yīng)用是 config/web.PHP),DSN( Data Source Name )是數(shù)據(jù)源名稱,用于指定數(shù)據(jù)庫(kù)信息.如下所示:
return [
// ...
components => [
// ...
db => [
class => yiidbConnection,
dsn => mysql:host=localhost;dbname=mydatabase, // MySQL, MariaDB
//dsn => sqlite:/path/to/database/file, // SQLite
//dsn => pgsql:host=localhost;port=5432;dbname=mydatabase, // PostgreSQL
//dsn => cubrid:dbname=demodb;host=localhost;port=33000, // CUBRID
//dsn => sqlsrv:Server=localhost;Database=mydatabase, // MS SQL Server, sqlsrv driver
//dsn => dblib:host=localhost;dbname=mydatabase, // MS SQL Server, dblib driver
//dsn => mssql:host=localhost;dbname=mydatabase, // MS SQL Server, mssql driver
//dsn => oci:dbname=//localhost:1521/mydatabase, // Oracle
username => root, //數(shù)據(jù)庫(kù)用戶名
password => , //數(shù)據(jù)庫(kù)密碼
charset => utf8,
],
],
// ...
];
請(qǐng)參考PHP manual獲取更多有關(guān) DSN 格式信息。 配置連接組件后可以使用以下語(yǔ)法訪問:
$connection = Yii::$app->db;
請(qǐng)參考[[yiidbConnection]]獲取可配置的屬性列表。 如果你想通過ODBC連接數(shù)據(jù)庫(kù),則需要配置[[yiidbConnection::driverName]] 屬性,例如:
db => [
class => yiidbConnection,
driverName => mysql,
dsn => odbc:Driver={MySQL};Server=localhost;Database=test,
username => root,
password => ,
],
注意:如果需要同時(shí)使用多個(gè)數(shù)據(jù)庫(kù)可以定義 多個(gè) 連接組件:
return [
// ...
components => [
// ...
db => [
class => yiidbConnection,
dsn => mysql:host=localhost;dbname=mydatabase,
username => root,
password => ,
charset => utf8,
],
secondDb => [
class => yiidbConnection,
dsn => sqlite:/path/to/database/file,
],
],
// ...
];
在代碼中通過以下方式使用:
$primaryConnection = Yii::$app->db;
$secondaryConnection = Yii::$app->secondDb;
如果不想定義數(shù)據(jù)庫(kù)連接為全局應(yīng)用組件,可以在代碼中直接初始化使用:
$connection = new yiidbConnection([
dsn => $dsn,
username => $username,
password => $pa
【怎樣實(shí)現(xiàn)yii2數(shù)據(jù)庫(kù)讀寫分離配置】相關(guān)文章:
怎樣實(shí)現(xiàn)演講的預(yù)期效果07-02
數(shù)據(jù)庫(kù)課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)開題報(bào)告07-01
騰訊的國(guó)際足球數(shù)據(jù)庫(kù)是如何實(shí)現(xiàn)的?07-13
股市投資怎樣實(shí)現(xiàn)復(fù)利增長(zhǎng)?07-02
企業(yè)怎樣實(shí)現(xiàn)高效績(jī)效考核07-03
怎樣在web實(shí)現(xiàn)漂亮的動(dòng)態(tài)圖表?07-03
微相框的微信功能是怎樣實(shí)現(xiàn)的?07-09
怎樣實(shí)現(xiàn)課堂中的師生角色轉(zhuǎn)換07-03