yii如何連接數據庫

yii如何連接數據庫

YII使用pdophp date Object)連接各種各樣的數據庫,因此,幾乎所有主流的數據庫,Yii都可以 很好地提供支持。這也是一個成熟框架所應具有的廣泛適用性。

在對數據庫進行任何操作之前,都必須先與數據庫服務器建立連接。在Yii應用中,有一個專門的核心 組件(component)用于處理數據庫連接,我們很容易可以在配置文件中找到他:

'components'?=>?[ ????'db'?=>?[ ????????'class'?=>?'yiidbConnection', ????????'dsn'?=>?'mysql:host=localhost;dbname=yii2advanced', ????????'username'?=>?'root', ????????'password'?=>?'', ????????'charset'?=>?'utf8', ????], ????//?...?...],//?...?...

Yii用?yiidbConnection?來表示數據庫連接。這個Connection實現了 對于PDO的一個簡單封裝,并掩蓋了各種數據庫的區別,實現了一個統一的開發接口。

這樣,使得你在 編程過程中,可以忽略絕大多數的數據庫兼容問題,可以更加專注于功能開發。比如,你不用再擔心在 MySQL下不能使用Money類型的字段等等。

在?yiidbConnection?中,有一個?$schemaMap?數組,用于建立PDO數據庫驅動與具體的 schema 類間的映射關系:

public?$schemaMap?=?[ ????'pgsql'?=>?'yiidbpgsqlSchema',?//?PostgreSQL ????'mysqli'?=>?'yiidbmysqlSchema',?//?MySQL ????'mysql'?=>?'yiidbmysqlSchema',?//?MySQL ????'sqlite'?=>?'yiidbsqliteSchema',?//?sqlite?3 ????'sqlite2'?=>?'yiidbsqliteSchema',?//?sqlite?2 ????'sqlsrv'?=>?'yiidbmssqlSchema',?//?newer?MSSQL?driver?on?MS?Windows?hosts ????'oci'?=>?'yiidbociSchema',?//?Oracle?driver ????'mssql'?=>?'yiidbmssqlSchema',?//?older?MSSQL?driver?on?MS?Windows?hosts ????'dblib'?=>?'yiidbmssqlSchema',?//?dblib?drivers?on?GNU/Linux?(and?maybe?other?OSes)?hosts ????'cubrid'?=>?'yiidbcubridSchema',?//?CUBRID];

我們可以認為Yii默認情況下支持上述數組中的10種DBMS(6個Schema),這在絕大多數情況下, 是完全足夠的。萬一你使用了超出這一范圍的DBMS,在確保兼容的情況下,你可以自己寫一個Schema, 使Yii可以支持該DBMS。

推薦學習:yii框架

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享