Database 简介

简介

Fuel 提供基於資料庫抽象層的驅动程序, 在编寫的時候支援的驅动程序有 MySQL、MySQLi 和 PDO。 除了常規的資料庫互动,Fuel 也具有 DBUtil 类別以执行資料庫操作如建立資料庫、 添加欄位及更多。

請注意:并非所有的特色都被每一種驅动程序支援。

配置

为了開始與資料庫協作,你必須變更資料庫設定。 全域設定對你在 APPPATH/config/db.php 定義的所有 环境 是有效的。你在位於適當环境配置文件夾中的 db.php 定義环境特定資料庫設定。 兩者将被合併以形成完整的資料庫配置。

資料庫配置像这樣的格式:

// MySQL 驅动程序配置
'development' => array(
	'type'           => 'mysqli',
	'connection'     => array(
		'hostname'       => 'localhost',
		'port'           => '3306',
		'database'       => 'fuel_db',
		'username'       => 'your_username',
		'password'       => 'y0uR_p@ssW0rd',
		'persistent'     => false,
		'compress'       => false,
	),
	'identifier'     => '`',
	'table_prefix'   => '',
	'charset'        => 'utf8',
	'enable_cache'   => true,
	'profiling'      => false,
	'readonly'       => false,
),

// PDO 驅动程序配置,使用 PostgreSQL
'production' => array(
	'type'           => 'pdo',
	'connection'     => array(
		'dsn'            => 'pgsql:host=localhost;dbname=fuel_db',
		'username'       => 'your_username',
		'password'       => 'y0uR_p@ssW0rd',
		'persistent'     => false,
		'compress'       => false,
	),
	'identifier'     => '"',
	'table_prefix'   => '',
	'charset'        => 'utf8',
	'enable_cache'   => true,
	'profiling'      => false,
	'readonly'       => array('slave1', 'slave2', 'slave3'),
),

'slave1' => array(
	// 第一生產唯讀 slave db 的配置
),

'slave2' => array(
	// 第二生產唯讀 slave db 的配置
),

'slave3' => array(
	// 第三生產唯讀 slave db 的配置
),

請注意,type 對所有連線都是必要的。

所有配置設定

設定 类型 描述
type 字串 要使用什么类型的連線,可以是 mysql、mysqli 或 pdo。
connection 陣列 連線設定陣列
connection.dsn 字串 給 PDO 的連線 DSN。
connection.username 字串 連線使用者。
connection.password 字串 連線密码。
connection.persistent 布林 是否啟动一个持久的連線。
connection.compress 布林 當使用 MySQL/MySQLi 時,是否使用客戶端壓縮。
identifier 字串 用於引用識別符的分隔符。
table_prefix 字串 資料表前綴。
charset 字串 連線字符集。
enable_cache 布林 是否允許快取,将覆寫連線基础上的查詢快取設定。
profiling 布林 是否添加連線查詢到分析器。
readonly 陣列|false 如果你有一个 master/slave 資料庫設定,你可以使用它來定義一个 slave 連線的陣列,它可以被用在隨機的讀取操作。

一旦你配置到位,是時候使用它